技术文摘
Java 史上三次破坏双亲委派模型分别是哪些?
Java 史上三次破坏双亲委派模型分别是哪些?
在 Java 的发展历程中,双亲委派模型是类加载机制的重要原则,但也存在三次被破坏的情况。
第一次破坏发生在 JNDI 服务中。JNDI 是 Java 命名和目录接口,其目的是为了整合不同的命名服务和目录服务。由于 JNDI 中的代码需要调用由独立厂商实现并部署在应用程序的 ClassPath 下的代码,而启动类加载器无法加载这些类,所以不得不破坏双亲委派模型,使用线程上下文类加载器来加载。
第二次破坏是为了支持热部署。热部署要求在运行时重新加载修改后的类,而传统的双亲委派模型无法满足这一需求。在这种情况下,通过自定义类加载器来实现类的重新加载,从而打破了双亲委派模型的限制。
第三次破坏则与 OSGi 框架有关。OSGi 是一个动态化模块化的 Java 框架。在 OSGi 中,每个模块(Bundle)都有自己独立的类加载器,并且这些类加载器之间的关系不再是传统的双亲委派模型。模块之间的类共享和隔离通过特定的规则和机制来实现,这再次打破了双亲委派模型。
这些对双亲委派模型的破坏并非是对其原则的否定,而是在特定场景下为了满足更复杂的需求而做出的灵活调整。它们展示了 Java 技术在不断发展和应对新挑战时的创新和适应能力。
理解这三次破坏,有助于我们更深入地理解 Java 类加载机制的本质,以及在不同场景下如何灵活运用和优化类加载策略,从而更好地开发和优化 Java 应用程序。也让我们看到 Java 作为一种成熟的编程语言,在保持稳定性和兼容性的基础上,不断演进和完善自身的机制,以适应日益复杂和多样化的应用需求。
TAGS: Java 技术 Java 发展历程 Java 双亲委派模型 Java 核心原理
- MySQL 数据库开启慢查询日志的详细介绍
- Ubuntu16.04安装MySQL5.7.17后登录遇ERROR 1045 (28000)问题的解决办法(附图)
- Node操作MySQL数据库示例代码分享
- MySQL 用户管理实用技巧:创建、授权、撤销权限、改密码与删除用户
- MySQL表四种分区类型代码详细解析
- 图文详解:监控 MySQL 并收集表信息的代码
- MySQL 数据库优化的八种实现方法详细解析与分享
- MySQL 字符集问题详细解析(附图)
- MySQL基于离线binlog实现快速闪回的详细介绍
- MySQL 5.0.16乱码问题的解决方法
- MySQL数据库外键约束全面解析
- MySQL 实现字段动态增删改
- MySQL 数据库及表基本命令全梳理
- MySQL安装教程:详细图文解析
- Linux 环境中 MySQL 数据库自动备份实用技巧