双亲委派的理解

本文详细阐述了Java类加载过程中双亲委派的机制:当类初次加载时,由自定义加载器开始,逐级向上通过BootstrapClassLoader,直到找到能处理的类加载器,确保安全地加载已知类。破坏双亲委派会导致自定义类加载器无法替换标准库。
摘要由CSDN通过智能技术生成

今天在看jvm的时候,将class文件加载到内存的过程,被这个“双亲委派”搞晕了。缕了一下午,终于有所收获,记录一下:

梳理清晰之后,正确的理解应该是:

首先,一个类在刚开始被类加载器加载的时候,类加载器判断是否加载过此类,

这个时候肯定是没有加载的

此时类加载器不会加载该类,

而是按照:自定义加载器1 -> 应用程序类加载器->扩展类加载器->启动类加载器 的顺序一层层的向上抛。

一直抛到BootstrapClassLoader。

BootstrapClassLoader表示也没有加载过此类,并且也处理不了。这个时候再一层层的向下抛,

一直抛到能处理这个类的加载器。此时才加载此类。

该类再次被加载的时候(破坏双亲委派,例如自己写一个java.lang.String),因为之前这个类已经被爸爸们加载过了,所以我们自己写的这个类根本没有机会得到加载。

这也是为什么要使用双亲委派?为了安全

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值