类加载器
- 顶级类加载器:BootStrapClassLoader
负责加载%JAVA_HOME%路径下lib文件夹中的jar包和class文件 - 扩展类加载器:ExtClassLoader
负责加载%JAVA_HOME%路径下lib文件夹下ext文件夹中的jar包和class文件 - 系统类加载器,线程上下文加载器:AppClassLoader
负责加载ClassPath下的类文件
双亲委派机制
当Java程序需要加载类时,从发起加载的加载器向上查找所需要的类,向上的顺序为(AppClassLoader->ExtClassLoader->BootStrapClassLoader),找到直接返回,没有则继续向上,其实就是查找缓存。向上委派到顶级类加载器中还是没有就开始向下加载,从顶级加载器的加载路径中开始查找类向下的顺序为(BootStrapClassLoader->ExtClassLoader->AppClassLoader),找到则加载返回,没有则继续向下查找,直到发起加载的加载器为至。