类加载几个阶段

加载 -> 连接(验证 -> 准备 -> 解析) -> 初始化

  1. 加载: 将.class文件load到内存中
  2. 连接:
    • 验证: 验证 .class 文件是否符合jvm虚拟机规范,cafebabe 字样, 有没有被篡改
    • 准备: 类变量(静态变量) 分配内存,如 static int a = 1; 这个时候给静态变量分配内存,这个时候a还是 int的初始值0
    • 解析: 符号引用替换成直接引用
  3. 初始化: 给类变量赋值 这个时候静态变量a的值才是1、执行静态构造函数、静态代码块
posted @ 2021-03-15 23:14  mushishi  阅读(76)  评论(0编辑  收藏  举报