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

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

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

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

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

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

参考文章

相关推荐
v***59831 分钟前
SpringCloud实战十三:Gateway之 Spring Cloud Gateway 动态路由
java·spring cloud·gateway
星恒随风1 分钟前
C++入门(二):函数重载、引用、const引用和 inline 内联函数
开发语言·c++·笔记·学习
MrMonkeyHou2 分钟前
Java微服务架构中的双剑合璧:Nacos与Gateway深度解析
java·微服务·架构·gateway
普通网友4 分钟前
【python】pyspark.errors.exceptions.base.PySparkRuntimeError [JAVA_GATEWAY_EXITED] Java gateway proce
java·python·gateway
zavoryn5 分钟前
Python 面试高频:装饰器、迭代器、生成器和上下文管理器一次讲清
开发语言·python·面试
basketball6166 分钟前
C++ 高级编程:1. 多线程基本操作
开发语言·c++
rqtz1 小时前
【机器人】ROS结合Qt开发上位机软件工作空间配置
开发语言·qt·ros
许彰午9 小时前
14_Java泛型完全指南
java·windows·python
智慧物业老杨9 小时前
司法绿色通道下的物业纠纷数智化解决方案——基于“三优先“机制的全流程技术落地实践
java·django
2601_961194029 小时前
2026初级会计实务公式总结大全|计算题公式手册PDF
java·spring·eclipse·pdf·tomcat·hibernate