Java类加载器双亲委派模型

Java类加载器双亲委派模型
目录1. Java中的类加载器有哪些2. 类加载器之间的关系3. 什么是双亲委派机制4. 类加载器的各自职责1. Java中的类加载器有哪些虚拟机在加载类的过程中需要使用类加载器进行加载而在Java中类加载器有很多那么当JVM想要加载一个.class文件的时候到底应该由哪个类加载器加载呢这就不得不提到”双亲委派机制”。首先我们需要知道的是Java语言系统中支持以下4种类加载器1. Bootstrap ClassLoader 启动类加载器2. Extention ClassLoader 标准扩展类加载器3. Application ClassLoader 应用类加载器4. User ClassLoader 用户自定义类加载器2. 类加载器之间的关系User ClassLoader 的父类加载器是 Application ClassLoaderApplication ClassLoader 的父类加载器是 Extention ClassLoaderExtention ClassLoader 的父类加载器是 Bootstrap ClassLoader3. 什么是双亲委派机制所谓的双亲委派机制指的就是当一个类加载器收到了类加载的请求的时候它不会直接去加载指定的类而是把这个请求委托给自己的父加载器去加载。只有父加载器无法加载这个类的时候才会由当前这个加载器来负责类的加载。4. 类加载器的各自职责Bootstrap ClassLoader 主要负责加载Java核心类库%JRE_HOME%\lib下的rt.jar、resources.jar、charsets.jar和class等。Extention ClassLoader主要负责加载目录%JRE_HOME%\lib\ext目录下的jar包和class文件。Application ClassLoader主要负责加载当前应用的classpath下的所有类。User ClassLoader 用户自定义的类加载器,可加载指定路径的class文件。那么也就是说一个用户自定义的类是无论如何也不会被Bootstrap和Extention加载器加载的。