类连接阶段分类
- 验证:确保被加载的类的正确性
- 准备:为类的静态变量分配内存,并将其初始化为默认值
- 解析:把类中的符号引用转换为直接引用
类被加载后,就进入连接阶段,连接就是将已经读入到内存的类的二进制数据合并到虚拟机的运行时环境中去
验证
类的验证的内容
- 类文件的结构检查
- 语义检查
- 字节码验证
- 二进制兼容性的验证
类的准备
在准备阶段,Java虚拟机为类的静态变量分配内存,并设置默认的初始值。例如,对如下Sample类
public class Sample {
private static int a = 1;
private static long b;
static {
b = 2;
}
}
在准备阶段,将为int类型的静态变量a分配4个字节的内存空间,并且赋予默认值0。为long类型的静态变量b分配8个字节的存储空间,并且赋予默认值0,真正赋予初始值是在类的初始化阶段
网友评论