标签:文件名 扩展 导致 mic lang 加载 结构 cat vat
- 之所以要有验证的步骤:
- 首先如果由编译器生成的class文件,必定符合JVM字节码格式
- 但是,如果使用自定义的class文件,在JVM中加载运行,会导致安全问题
- 因此需要为class文件添加验证的步骤,如果不符合,就不会继续执行,保证JVM安全
- 准备阶段和初始化阶段似乎有矛盾,但其实并不矛盾:
- 假如类中有这样的语句: private static int a = 10 , 该语句的执行过程如下:
- 首先字节码文件加载到内存中
- 进行链接的验证步骤
- 验证通过后进行准备步骤,给a分配内存
- 因为变量a是static属性,所以a的值为int类型的默认初始值0,即a = 0
- 然后进行到解析的步骤
- 只有到初始化步骤时,才把a的真正的值10赋给a,此时a = 10
标签:文件名 扩展 导致 mic lang 加载 结构 cat vat
原文地址:https://www.cnblogs.com/chova/p/14943976.html