欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

<深入java虚拟机>学习笔记

程序员文章站 2022-05-23 11:42:23
...

     最近一直在看<深入java虚拟机>这本书,虽然是本比较老的书了.但看了几章后,感觉自己对一些底层的知识更了解了.现总结一下.

     1.安全性

         说到安全性肯定要说java的安全沙箱了,首先来看看安全水箱的基本组件,主要由以下几个组成:

  • 类装载器结构
  • class文件检验器
  • 内置于java虚拟机的安全特性
  • 安全管理器及java API

       1.1 类装载器

      从1.2开始,类装载器都采用的是"双亲委派"模式,即一个类装载器要装载一个类时,首先将这个类"委派"给它的双亲进行装载,这样下去一直到启动装载器,如果还不能装载则由它自己来装载.如果要装载的类已经被装载,则不会重复装载.由不同的装载器装载的类是属于不同的运行包,也就是说,如果一个类java.lang.Name是由用户自定义的装载器装载,而java.lang.Object是由启动装载器装载,虽然从包名上来看它们是属于同一个包,可能互相访问,但由于 他们不是由同一个类装载器装载,所以他们不在同一个包下面.这样做可以防止一些恶意程序的破坏.

     1.2 class文件检验器

      class文件是检验一共分为四趟.分别完成以下任务:

      第一趟:class文件是结构检查.比如说检查前四个字节是不是0XCAFEBABE等等.

      第二趟:类型数据的主义检查.主要检查一些语法错误.

      第三趟:字节码验证.

      第四趟:符号引用的验证.