ClassLoader 采用上级委托接待机制加载 class
JVM 平台提供三层 ClassLoader
1、Bootstrap ClassLoader:主要加载 JVM 自身工作需要的类
2、ExtClassLoader:加载 VIP 类
3、AppClassLoader:加载自定义类
JVM在加载类之前会检查请求的请求的类是否已经被加载,也就是要调用 findLoadedClass() 方法查看是否能够返回类实例。
JVM表示一个类是否是同一个类会有两个条件:
1、类的完整类名是否一样
2、加载这个类的 ClassLoader 是否是同一个
实现类的热部署,可以创建不同的ClassLoader的实例对象,通过这个不同的实例对象来加载同名的类
ClassLoader 对象同样会被 GC 回收,只是在执行 Full GC 时才会被回收。