首页 > 学院 > 开发设计 > 正文

JVM类加载2-验证

2019-11-14 09:08:47
字体:
来源:转载
供稿:网友

笔者博客地址: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


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表