为什么要使用双亲委派机制?

为什么要使用双亲委派机制?

Java 虚拟机判断两个类是否为同一个类的依据是:类名是否相同且加载该类的加载器是否相同;

如果没有双亲委派机制, 同一个类可能会被多个类加载器加载, 如此即便是相同的类也可能会被识别为两个不同的类, 相互赋值时会出现问题;

双亲委派机制能够保证多加载器加载某个类时, 最终只有一个类加载器加载, 确保加载结果相同; 没有双亲委派机制, 假如用户编写一个名为 java.lang.Object 的类, 并放在程序的 ClassPath 中, 系统就会出现多个不同的 Object 类, 此时 Java 类型体系中基础行为会无法保证, 应用程序会变得一片混乱;

此外, 双亲委派加载机制可以保证核心类的安全, 当有人想替换核心类 String.java 时, 在双亲委派机制下, 核心类会被启动类加载器(BootstrapClassLoader)优先加载, 轮到其他类加载器再去加载时, 会跳过已经加载过的类, 所以双亲委派加载机制在一定程度上防止了危险代码的植入; 解决了类加载的安全问题;

参考文章

相关推荐
ん贤1 分钟前
怎么设计,才算一个优秀审计模块
大数据·开发语言·设计·审计
l1t7 分钟前
测试用rust重写的postgresql: pgrust
开发语言·postgresql·rust
thefool1122667 分钟前
Java 面向对象
java
2501_9481069110 分钟前
计算机毕业设计之jsp-智慧旅游分享平台
java·开发语言·spark·汽车·课程设计·旅游
阿里云云原生28 分钟前
Agent 不再是“玩具”!AgentScope Java 2.0 GA 发布:构建企业级分布式智能体底座
java·开发语言·分布式·agentscope
41541129 分钟前
MyBatis-Plus + PostGIS 实战(四):GeoJSON 序列化与前端地图对接,全局 WKT + 局部 GeoJSON,两种格式优雅共存
java·mybatis·postgis·geojson
BIM云平台开发36 分钟前
【App.vue里跟踪页面跳转和用户ID】
开发语言·前端·javascript
峥嵘life43 分钟前
Andorid 打开热点,关闭有线网,ifconfig卡死分析解决
java·服务器·网络
NiceCloud喜云1 小时前
ClaudeAPI 接入 n8n / Dify / Open WebUI 实战:Base URL 配置、调用示例与排错
开发语言·ai·chatgpt·aigc
HillVue1 小时前
Token 叙事退潮,DAA 重新定义 AI 价值标准
java·人工智能·eclipse