JVM类加载2-验证

来源:互联网 发布:r18mmd动作数据 编辑:程序博客网 时间:2024/06/01 16:49

笔者博客地址:https://charpty.com

“验证”是“连接”的步骤之一,在“类加载”第一步“加载”完成后,虚拟机并不一定立即开始对类信息进行“连接”,这取决于虚拟机的模式和当前状态。可能会在主方法执行时一次性完成所有类的连接,称为早连接,或者在类的符号引用首次被访问时才去执行连接,称为晚连接,我们先不关心何时进行类的“连接”操作,仅来关注“连接”的过程,“连接”的过程大致如下:
这里写图片描述

“验证”是“连接”阶段的第一步,这一阶段是为了确保Class文件字节流中包含的信息符合当前虚拟机的要求,并且不会危害虚拟机自身的安全
虽然按理说这些*.class文件都是由Java自己的编译器生成的,但是JVM仅仅负责加载class文件,不排除有人恶意生成class文件或者Java的编译器生成时有错误(可能性很小),所以“验证”阶段非常重要,防止恶意的破坏以及不符合Java规范的语法。

// TODO

参考:https://docs.oracle.com/javase/specs/jvms/se7/html/jvms-4.html#jvms-4.10

0 0
原创粉丝点击