技术文摘
Java 史上三次破坏双亲委派模型分别是哪些?
Java 史上三次破坏双亲委派模型分别是哪些?
在 Java 的发展历程中,双亲委派模型是类加载机制的重要原则,但也存在三次被破坏的情况。
第一次破坏发生在 JNDI 服务中。JNDI 是 Java 命名和目录接口,其目的是为了整合不同的命名服务和目录服务。由于 JNDI 中的代码需要调用由独立厂商实现并部署在应用程序的 ClassPath 下的代码,而启动类加载器无法加载这些类,所以不得不破坏双亲委派模型,使用线程上下文类加载器来加载。
第二次破坏是为了支持热部署。热部署要求在运行时重新加载修改后的类,而传统的双亲委派模型无法满足这一需求。在这种情况下,通过自定义类加载器来实现类的重新加载,从而打破了双亲委派模型的限制。
第三次破坏则与 OSGi 框架有关。OSGi 是一个动态化模块化的 Java 框架。在 OSGi 中,每个模块(Bundle)都有自己独立的类加载器,并且这些类加载器之间的关系不再是传统的双亲委派模型。模块之间的类共享和隔离通过特定的规则和机制来实现,这再次打破了双亲委派模型。
这些对双亲委派模型的破坏并非是对其原则的否定,而是在特定场景下为了满足更复杂的需求而做出的灵活调整。它们展示了 Java 技术在不断发展和应对新挑战时的创新和适应能力。
理解这三次破坏,有助于我们更深入地理解 Java 类加载机制的本质,以及在不同场景下如何灵活运用和优化类加载策略,从而更好地开发和优化 Java 应用程序。也让我们看到 Java 作为一种成熟的编程语言,在保持稳定性和兼容性的基础上,不断演进和完善自身的机制,以适应日益复杂和多样化的应用需求。
TAGS: Java 技术 Java 发展历程 Java 双亲委派模型 Java 核心原理
- 8 个 CSS 开发工具,助你即刻变身开发高手!别再犹豫!
- C 语言如此强大,其自身由何种语言写成?编写过程名为自举
- Python 绘制热力图:超越柱状图、饼状图和折线图的新选择
- 微信扫一扫识物技术:抠图与检索的秘密
- 实现高效企业级微服务治理的三招
- 8 款开源免费的 Web 控制面板服务器管理工具,系统管理员必备
- Javascript 事件循环视角下 Vue.nextTick 的原理与执行机制
- Redis 锁:从面试连环炮到神仙打架的求锤得锤
- 前端开发人员的 10 个安全建议,老板定会点赞
- 腾讯开源微信所用的 Transformer 加速推理工具
- Python 如此热门,为何称其非未来编程语言?
- 13 个 Python 编程挑战站点
- 无需写代码,可视化媲美 Python,令领导满意的报表工具究竟什么样
- 8 个助力持续改进的 DevOps 自动化工具
- 最新编程语言趋势报告:DevOps受开发者青睐,Kotlin增速居首