双亲委派机制
- 类加载器分为:
启动类加载器(BootstrapClassLoader)
扩展类加载器(EXTClassLoader)
应用类加载器(APPClassLoader) - 类加载器收到类加载的请求,会将请求委托给它的父类加载器去完成,一般来说,如果你没有自定义类加载器的话,那么最开始的类加载器就是
应用类加载器
,应用类加载器会把类加载请求委托给扩展类加载器去完成,扩展类加载器又会把请求委托给启动类加载器去完成。
启动类加载器会去rt.jar
这个 jar 包里寻找需要加载的类,找得到的话就加载这个类,找不到的话就让子类加载器,也就是扩展类加载器去加载,扩展类加载器会去lib/ext/
这个目录下的 jar 包中寻找需要加载的类,找不到的话,就会让应用类加载器去加载,如果还是找不到的话就会抛出Class Not Found
异常。