类加载几个阶段

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

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

本文来自博客园,作者:mushishi,转载请注明原文链接:https://www.cnblogs.com/mushishi/p/14540745.html

原文地址:https://www.cnblogs.com/mushishi/p/14540745.html