双亲委派机制

双亲委派机制是存在于类加载时的一种机制,为了避免开发者自己创建的包与java的核心类库包同名而造成的类加载时的错误。比如常用的String类在java.lang包下。如果一个开发者自己命名一个包名也叫java.lang包,而这个lang包下也有一个类叫做String类。那这个时候需要加载String类的时候是加载核心类库中的String还是加载自定义的String呢?双亲委派机制就是解决此类问题的。即使开发者自己定义了同样的包名和类名,JVM也是先加载核心类库中的文件而不是自定义的文件。

双亲委派机制的工作原理:

如上图所示,当一个类加载器收到了类加载的请求,它并不会去自己加载,而是把这个请求委托给父类的加载器去执行;如果父类加载器还有自己的父类加载器,则会进一步交给上层加载器。这样层层递归下去,最终类加载请求到达顶层的启动类加载器;然后顶层的启动类加载器查看自己的是否能完成类加载的任务,如果能够完成则直接返回。如果不能完成类加载的任务则交给下层的子类加载器,子类加载器再去查看自己是否能完成类加载任务。也是如此递归向下直到有一个类加载器完成此次的类加载任务。

(一个尚未工作,在code路上疯狂踩坑并努力爬起的小学生。上述表述如有误,请批评指正!谢谢!)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值