一,每一个加载器都有一个独立的类名字空间,两个类来源于同一个class文件,如果不是被同一个加载器加载,那么这两个加载的类是不相等的。
二,加载器的类型:
1,启动类加载器,c++实现是JVM的一部分,一般加载JAVA_HOME/lib下面JVM识别的类。启动类加载器无法被java程序直接引用。
2,扩展类加载器,一般加载JAVA_HOME/lib/ext下面JVM识别的类,程序可引用。
3,应用程序加载器,加载用户类库ClassPath路径下的类。
三,双亲委派模型加载器
双亲委派模型加载器队了启动类加载器,其它加载器都有父加载器。
双亲委派模型加载器让程序的稳定运行,它是官方推荐的加载器实现方式,非强制性约束模型。
双亲委派模型加载器加载过程:
如果一个类加载器收到了加载请求,它不会立即加载,它会把这个请求派给父加载器去完成,依次递归,最终所有的请求都会派给启动类加载器去处理,如果处理不了,才给子加载器去处理。