<深入java虚拟机>学习笔记
程序员文章站
2022-05-23 11:42:11
...
最近一直在看<深入java虚拟机>这本书,虽然是本比较老的书了.但看了几章后,感觉自己对一些底层的知识更了解了.现总结一下.
1.安全性
说到安全性肯定要说java的安全沙箱了,首先来看看安全水箱的基本组件,主要由以下几个组成:
- 类装载器结构
- class文件检验器
- 内置于java虚拟机的安全特性
- 安全管理器及java API
1.1 类装载器
从1.2开始,类装载器都采用的是"双亲委派"模式,即一个类装载器要装载一个类时,首先将这个类"委派"给它的双亲进行装载,这样下去一直到启动装载器,如果还不能装载则由它自己来装载.如果要装载的类已经被装载,则不会重复装载.由不同的装载器装载的类是属于不同的运行包,也就是说,如果一个类java.lang.Name是由用户自定义的装载器装载,而java.lang.Object是由启动装载器装载,虽然从包名上来看它们是属于同一个包,可能互相访问,但由于 他们不是由同一个类装载器装载,所以他们不在同一个包下面.这样做可以防止一些恶意程序的破坏.
1.2 class文件检验器
class文件是检验一共分为四趟.分别完成以下任务:
第一趟:class文件是结构检查.比如说检查前四个字节是不是0XCAFEBABE等等.
第二趟:类型数据的主义检查.主要检查一些语法错误.
第三趟:字节码验证.
第四趟:符号引用的验证.
上一篇: Spring单例的Action Bean的成员属性的使用注意
下一篇: 优化。