一、类的生命周期 连接阶段之验证
连接阶段的第一个环节是验证,验证的主要目的是检测Java字节码文件是否遵守了<Java虚拟机规范>中的约束。这个阶段一般是不需要程序员进行处理。
主要包含如下四个部分,具体详见<<Java虚拟机规范>>:
1、文件格式验证,比如文件是否以0xCAFEBABE开头,主次版本号是否满足当前Java虚拟机版本要求。
其中这些开头通常又称之为魔术值。
如果魔术值被篡改会校验失败。
2、元信息验证,例如类必须有父类(super不能为空)
java中的类,一般都有父类
3、验证程序执行指令的语义,比如方法内的指令执行到一般强行跳转到其他方法中区。
4、符号引用验证,例如是访问