类加载流程
类加载流程描述了类加载器把 class 文件加载到虚拟机的过程。class 文件像是一个模板,被加载到 JVM 之后,可以被复刻为多个实例。
类加载流程包括 “加载“,”链接“,”初始化“ 三个步骤, 其中 ”链接“ 包括了 ”验证“,”准备“,”解析“三个小步骤,最终加载到方法区。
加载
类加载过程大致可描述为三步:
- 通过获取类的全限定名来获取类的二进制字节流(以物理磁盘为例),全限定名指的是:包名+类型,如:test.World;
- 将二进制字节流表示的静态存储结构转化为方法区的运行时数据结构,用于实例化时放到运行时数据区对应的位置使用;
- 在内存中生成代表这个类的 java.lang.class 对象,作为方法区这个类的数据访问入口。
package test
class World {