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

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

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

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

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

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

参考文章

相关推荐
AuroraWanderll2 分钟前
深入理解C++多态(三):多态的原理——虚函数表机制(上)
c语言·开发语言·数据结构·c++·算法·stl
C***u1765 分钟前
Spring Boot 实战篇(四):实现用户登录与注册功能
java·spring boot·后端
lly2024067 分钟前
Python Number(数字)
开发语言
阿沁QWQ7 分钟前
STL库vector模拟实现
开发语言·c++
码界奇点8 分钟前
Java大数据在智能教育个性化学习资源推荐中的冷启动解决方案
java·大数据·学习·动画·推荐算法
未来之窗软件服务8 分钟前
操作系统应用(三十二)python版本选择系统—东方仙盟筑基期
开发语言·python·东方仙盟·操作系统应用
safestar201211 分钟前
Elasticsearch分片设计:从数据分布失衡到集群稳定性实战
java·es
Ustinian_31012 分钟前
【python】图片转PDF工具【附完整源码】
开发语言·python·pdf
数智化架构师-Aloong14 分钟前
⚡️ PowerJob深度解析:Java生态下高并发分布式调度的终极选择
java·开发语言·分布式·系统架构