Java类加载器双亲委派模型
2026/7/11 10:38:08 网站建设 项目流程

目录

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 ClassLoader;

Application ClassLoader 的父类加载器是 Extention ClassLoader;

Extention ClassLoader 的父类加载器是 Bootstrap ClassLoader;

3. 什么是双亲委派机制?

所谓的双亲委派机制,指的就是:当一个类加载器收到了类加载的请求的时候,它不会直接去加载指定的类,而是把这个请求委托给自己的父加载器去加载。只有父加载器无法加载这个类的时候,才会由当前这个加载器来负责类的加载。

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加载器加载的。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询