前言
总的来说,Java的类加载过程分为三步:加载、链接、装入
过程
1.加载
加载分为三步:
- 通过全类名获取定义此类的字节流
- 把字节流代表的静态存储结构转换为方法区的动态存储结构
- 根据动态存储结构生成代表该类的class对象,作为方法区访问的入口
2.链接
链接与加载是并行的。
链接阶段涉及到三部分工作:
- 对文件格式、元数据、符号引用、字节码进行引用
- 为类的变量(非实例变量)分配内存空间,设置初值
- 虚拟机将常量池内的符号引用替换为直接引用
3.初始化
对类执行初始化,真正去执行字节码