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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值