加载 --连接 验证 准备 解析 初始化
加载
加载 二进制流
方法区数据结构
在java堆中生成对于的java.lang.class对象
验证
元数据
字节码
准备
static 初始化变量 <1
静态常量
解析
符号引用 替换为 直接引用。
符号引用 二进制的依赖关系。硬盘存储形式
直接引用 指针 或者地址偏移量 内存形式。
初始化 <1 在准备阶段 初始化, 这个阶段赋值。
执行类构造器 前调用父构造方法。
<clinit>是线程安全的