美文网首页
第七章虚拟机类加载机制

第七章虚拟机类加载机制

作者: 小小少年Boy | 来源:发表于2018-07-21 20:31 被阅读0次

类加载过程---验证

目的:
为了保证class文件中字节流包含的信息符合java虚拟机的要求。

四个阶段验证:
1 文件格式验证
目的:确保class文件格式的规范。
确保输入的字节流正确解析,并存储于方法区之内。所以此阶段是基于二进制字节流进行的。而后面的三个验证阶段,全部是基于方法区的存储结构进行的。

比如:验证魔数,主次版本,常量类型等

2 元数据验证
目的:对字节码描述的信息进行语义分析,确保其描述的信息符合java语法规范。

比如:检查接口和父类,继承与抽象方法等

3 字节码验证
目的:对类的方法体进行校验分析,主要通过数据流和控制流分析,确定程序语义是合理,符合逻辑的。

比如:跳转指令,方法体中的类型转换是有效的等

4 符号引用验证
目的:它发生在虚拟机将符号引用转化为直接引用的时候。其目的是确保解析动作能正常执行。
符号应用可以看作是对类自身以外的信息进行匹配性校验。

备注:
验证阶段是非必要的,可以使用-Xverify:none参数来关闭大部分的类校验措施,以缩短虚拟机类加载的时间。


Boy-20180721

相关文章

网友评论

      本文标题:第七章虚拟机类加载机制

      本文链接:https://www.haomeiwen.com/subject/yhlkmftx.html