java安全性语言
java通过所谓的沙箱安全模型保证了其安全性,以下我们就来看看java提供的安全沙箱机制。
虚拟机通过使用不同的类装载器装载可靠的包和不可靠的包。即所谓的双亲委派模式:在某个特定的类装载器试图以经常使用方式装载类型之前,它会先默认将这个任务“委派”给它的双亲,这个双亲再依次请求自己的双亲来装载这个类型。这个委派的过程一直向上继续,直到达到启动类载入器(boostrp classloader)。假设一个类载入器的双亲类载入器有能力装载这个类型,则这个类载入器返回这个类型,否则这个类装载器试图自己来装载这个类型。
好的java编译器不应该产生畸形的class文件,可是java虚拟机并不知道某个特定的class文件的来源,所以java虚拟机的实现必须有个class文件检验器,文件检验器能够调用class文件以确保这些定义的类型能够安全的使用。
第一趟扫描是在类被装载时进行的,在这次扫描中,class文件检验器检查这个class文件内部结构。以保证它能够被安全地编译。
第二和第三趟扫描是在连接过程进行的,在这两次扫描中,class文件检验器确认类型数据遵从java编程语言的语义。包括检验它所包括的全部字节码的完整性。第四趟扫描是在进行动态链接的过程中解析符号引用时进行的,在这次扫描中。class文件检验器确认被引用的类、字段以及方法确实存在。
第二、第三和第四趟扫描是在方法区中由实现决定的数据结构上进行的。
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvY2hkamo=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">
除了对符号引用的检验(class文件检查的第四趟扫描)。java虚拟机在执行字节码时
这些机制大多数是java类型安全的基础:
详细能够參考java.lang.SecurityManager类别。
版权声明:本文博客原创文章。博客,未经同意,不得转载。
java安全性语言的更多相关文章
- Notes 20180506 : Java程序设计语言概述
2.Java程序设计语言概述 如果对于开发语言的排行榜有所关注的话,那么会发现很长一段时间以来Java都是位居榜首的高级开发语言,作为一个Java开发者,为此感到骄傲的同时也深感忧虑,骄傲的是自己接触 ...
- java笔记--java的语言特性
java的语言特性 1.简单性:例如:java不再支持多继承,而c++是支持多继承的,多继承比较复杂. c++中有指针,java中屏蔽了指针的概念.所以相对来说比较简单. //注:java语言的底层是 ...
- MySQL安全性语言
文章为作者原创,未经许可,禁止转载. -Sun Yat-sen University 冯兴伟 实验2:安全性语言 安全性实验包含两个实验项目,其中1个为必修,1个为选修.自主存取控制实验为设计型 ...
- JAVA在语言级支持多线程
进程:任务 任务并发执行是一个宏观概念,微观上是串行的. 进程的调度是有OS负责的(有的系统为独占式,有的系统为共享式,根据重要性,进程有优先级). 由OS将时间分为若干个时间片. JAVA在语言级支 ...
- Java程序语言的后门-反射机制
在文章JAVA设计模式-动态代理(Proxy)示例及说明和JAVA设计模式-动态代理(Proxy)源码分析都提到了反射这个概念. // 通过反射机制,通知力宏做事情 method.invoke(obj ...
- Java的语言特点详解
1)简单性:java从C++简化而来,设计者们把C++语言中许多可用的特征去掉了,这些特征是一般程序员很少使用的.java还剔除了C++操作符过载和指针操作. 2)面向对象:java是一个面向对象的语 ...
- java安全性-引用-分层-解耦
Java不支持指针, 一切对内存的访问都必须通过对象的实例变量来实现,这样就防止程序员使用 "特洛伊"木马等欺骗手段访问对象的私有成员 访问一个对象必须通过这个对象的引用 java ...
- 有 a - b < c 对Java安全性的思考
软件工程中,不论使用哪种开发语言,安全性一直是一个非常棘手却又重要的问题.安全性是软件开发领域永远的主题之一,而且随着互联网的蜂拥发展而带动的新技术的兴起与革命(比如近几年火起来的node.js,py ...
- C/C++/Java/C#语言的基本类型
C语言的基本类型有:char, short ,int ,long ,float ,double 一共6种基本类型. C++语言有:bool, char ,wchar_t, short, int , l ...
随机推荐
- C# 简化优化if/switch 表驱动法
表示这个很强大 字典加反射,搞定多window的switch public partial class MainWindow : Window { Dictionary<string, Type ...
- coco2dx c++ HTTP实现
coco2dx c++ HTTP实现 达到的结果如下面的 iPhone截图 android 日志截图 watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdnBp ...
- hibernate 大对象类型hibernate制图
基础知识: 在 Java 在, java.lang.String 它可以用来表示长串(超过长度 255), 字节数组 byte[] 可用于存放图片或文件的二进制数据. 此外, 在 JDBC API 中 ...
- cocos2d 创建一个黑白纹理
@interface myGrayTexture : CCTexture2D // @param exposure 曝光 +(id) textureWithFile:(NSString*) file ...
- MVC 学习 区域
http://www.cnblogs.com/fly_dragon/archive/2011/10/12/2209438.html
- java线程学生进实训室
Instructor: Dr. Simina FlutureCSCI 34 CSCI 34 CSCI 34CSCI 34 0 Summer 201 ummer 201 ummer 201ummer 2 ...
- easyui LinkButton
http://www.zi-han.net/case/easyui/menu&button.html
- [Windows Phone] 如何在 Windows Phone 应用程式制作市集搜寻
原文:[Windows Phone] 如何在 Windows Phone 应用程式制作市集搜寻 [说明] 本文说明如何在 Windows Phone 应用程式中,加入市集搜寻的功能,主要使用了 Mar ...
- CSDN markdown 编辑 三 基本语法
这是一个副本,在准备好了help档,另外补充一些他们自己的解释. 这一次是不说话UML和LaTEX. 准备抽两篇文章专门谈. 1. 标题和字体大小 markdown字号太少了.觉得应该再加些. 在文字 ...
- Asp.net MVC4 +EF6开发
Asp.net MVC4 +EF6开发的个人网站源码和介绍(仅供新手学习) 本项目是我去年利用业余时间开发的,采用的是asp.net mvc 4 +EF6+三层架构,适合新手进行学习,高手就没有什么价 ...