类装载器:读字节码文件并构造出类在 JVM 内部表示对象的组件
把一个类装载到 JVM 中,经历以下步骤
1. 装载:查找和导入class文件
2. 链接:执行校验,准备和解析步骤
a) 校验:检查载入的class文件的正确性
b) 准备:对类的静态变量分配空间
c) 解析:将符号引用转成直接引用
3. 初始化:对类的静态变量、静态代码块执行初始化工作
JVM 在运行时产生三个 ClassLoader :根装载器、 ExtClassLoader 扩展装载器、 AppClassLoader 系统类装载器
根装载器:使用 C++ 编写,非 ClassLoader 子类,负责装载 JRE 的核心类库
扩展装载器: ClassLoader 子类,负责装载 JRE 扩展目录 ext 中的 JAR 包
系统类装载器: ClassLoader 子类,负责装载 Classpath 路径下的烤类包