类的加载过程

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

加载 

 加载 二进制流

 方法区数据结构

在java堆中生成对于的java.lang.class对象

验证 

  元数据

  字节码

准备

 static  初始化变量   <1

 静态常量

解析

符号引用 替换为 直接引用。

符号引用 二进制的依赖关系。硬盘存储形式

直接引用 指针 或者地址偏移量  内存形式。

初始化 <1 在准备阶段 初始化, 这个阶段赋值。

执行类构造器  前调用父构造方法。

<clinit>是线程安全的

原文地址:https://www.cnblogs.com/itxuexiwang/p/6255559.html