JVM虚拟机 之 破坏型双亲委派模型

本文深入探讨Java中双亲委派模型的三次主要破坏情况,包括模型引入前的历史背景、因模型自身缺陷导致的问题及用户追求程序动态性引发的挑战。通过具体案例分析,如JNDI服务的线程上下文类加载器使用,揭示了双亲委派模型在实际应用中的局限性和应对策略。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

第一次破坏

因为双亲委派模型是在JDK1.2之后才引入的,但是在JDK1.0之前就已经有用户自定义的类加载器存在了,所以Java的设计者在引入双亲委派模型时不得不做出一些妥协

第二次破坏

是由于该模型本身的缺陷所导致的,双亲委派模型很好的解决的各个类加载器的基础类为同一个的问题,但是如果是这个基础类又想要都调用用户所写的代码时,就会有问题产生了。比如JNDI服务的问题,JNDI服务是java的一个基础服务,这个服务就是为了对资源进行统一的管理和查找,它的代码由启动类进行加载,需要调用独立厂商实现并部署在应用程序的ClassPath下的JNDI接口,但是启动类使不认识这些代码的,这时,引入了线程上下文类加载器(Thread Context ClassLoader() ),如果创建线程时还未设置,他将会从父线程中继承一个,如果在应用程序的全局范围内都没有设置过的话,那这个类加载器默认就是应用程序类加载器。

第三次破坏

是由于用户过于追求程序的“动态性”导致的,这个“动态性”是指一些热门的名词,例如:代码的热交换、模块的热部署等等,就是说不用重启电脑,直接部署就可以用。

 

本篇博客是看了其他人的博客简单总结的,具体的可以这篇博客:https://blog.csdn.net/luoyang_java/article/details/92598142

我之前也有关于双亲委派模型介绍的博客:https://blog.csdn.net/Right__/article/details/104829728

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值