java中的类加载顺序
1 | public class SingletonDemo { |
分析:
类的加载过程为:转载 – 链接 – 初始化
- 装载:根据类全路径进行加载
- 链接包含三个步骤:验证 - 准备 - 解析。
- 验证:
- 文件格式验证
- 元数据验证
- 字节码验证
- 符号引用验证
- 准备:为类的静态变量分配内存,并将其初始化为默认值。
- 解析:把类中的符号引用转换为直接引用
- 验证:
初始化阶段会初始化类中的:
- 静态成员变量
singletonDemo,初始化时,count1和count2默认为0,初始化后count1和count2都是1,所以1和2位置输出均为1。 - 静态变量
count1和count2,初始化前count1和count2都是1,初始化后count2被赋值为0。所以3和4的位置输出1,0