/**
* 《操作系统原理》 记录(38)
* # java2 保护
* #JVM会响应类创建实例的请求,然后进行装载
*
* 栈检查
* JVM中的每个线程都会存放当前线程使用的方法调用
* 当方法调用不可靠时,会进入一个执行特权的块内进行请求的调用执行
* 当方法进入这个特权块执行时,与其对应的栈帧也会被标记此事实发生
* 可以继续执行这个块代码。
* 如果有访问受保护区域的方法执行时,首先检查栈情况,许可检测是否允许访问
* 如果发现一个方法的所属类的保护区域的栈帧是不允许访问的栈帧,抛出异常
*
* @由于要操作栈检查,所以禁止一个程序修改自身的栈注释信息
* 或者执行其他任何的栈操作.
* 安全类型和受保护的java和其他语言的不同点
*
* 一个java程序不能直接操作内存,只能操作一个内存对象的引用.
* 引用是不可伪造的,操作通过接口完成。
* 通过一个复杂的装载期和运行检查期来保证程序的权限作用安全
*
* END 由于一个对象无法获得自身的栈和其他受保护组件的引用,所以无法操作运行期的栈信息.
*
* *****
* java在装载期和运行期检查严格要求类的类型安全。
* 类型安全确保 数值类型不会有指针,数组之外无法访问数组,不能通过直接的方法访问内存。
*
* java保护的基础
* 一个程序只能通过类中的方法访问一个对象。
* 让类达到了很好的封装效果。
* 保护自身数据和方法免遭于同一个JVM上的其他类的干扰。
*
*/
|