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

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

相关文章:

  • 2021-11-28
  • 2021-09-22
  • 2021-11-02
  • 2021-11-07
  • 2021-12-23
  • 2021-10-19
  • 2022-12-23
猜你喜欢
  • 2021-09-18
  • 2022-12-23
  • 2022-12-23
  • 2021-11-29
  • 2021-09-30
  • 2022-12-23
  • 2022-12-23
相关资源
相似解决方案