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

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

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

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

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

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

参考文章

相关推荐
天若有情6735 分钟前
打破思维定式!C++参数设计新范式:让结构体替代传统参数列表
java·开发语言·c++
斯特凡今天也很帅8 分钟前
python测试SFTP连通性
开发语言·python·ftp
sunywz10 分钟前
【JVM】(4)JVM对象创建与内存分配机制深度剖析
开发语言·jvm·python
亲爱的非洲野猪10 分钟前
从ReentrantLock到AQS:深入解析Java并发锁的实现哲学
java·开发语言
星火开发设计11 分钟前
C++ set 全面解析与实战指南
开发语言·c++·学习·青少年编程·编程·set·知识
wheelmouse778812 分钟前
如何设置VSCode打开文件Tab页签换行
java·python
yangminlei15 分钟前
Spring Boot——日志介绍和配置
java·spring boot
廋到被风吹走21 分钟前
【Spring】Spring Boot Starter设计:公司级监控SDK实战指南
java·spring boot·spring
码头整点薯条26 分钟前
启动报错:Invalid value type for attribute ‘factoryBeanObjectType‘ 解决方案
java
沛沛老爹26 分钟前
Web开发者进阶AI:Agent Skills-深度迭代处理架构——从递归函数到智能决策引擎
java·开发语言·人工智能·科技·架构·企业开发·发展趋势