类加载器
- 用于实现类加载动作(根据类全限定名获取描述此类的二进制字节流)
- 每一个类加载器都有一个独立的类名称空间,即对于任意一个类都需要由加载它的类加载器和这个类本身一同确立其在Java虚拟机中的唯一性。
分类
- 启动类加载器由C++语言实现,是虚拟机自身的一部分,负责加载<JAVA_HOME>\lib 目录下的类
- 其他类加载器由Java语言实现,独立于虚拟机外部,且全部继承自java.lang.ClassLoader 扩展类加载器负责加载<JAVA_HOME>\lib\ext 目录下的类

image.png
双亲委派模型
- 解决各个基础类在每个类加载器中统一的问题:
- 第二次破坏双亲委派模型:
- 第三次破坏双亲委派模型: