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

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

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

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

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

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

参考文章

相关推荐
€8111 分钟前
Java入门级教程17——利用Java SPI机制制作验证码、利用Java RMI机制实现分布式登录验证系统
java·开发语言·java spi机制·远程传输数据
2301_815357707 分钟前
parameterType和@Param注解的区别
java·开发语言·数据库
tyatyatya13 分钟前
MATLAB中进行视觉检测入门教程
开发语言·matlab·视觉检测
We....26 分钟前
Java 分布式缓存实现:结合 RMI 与本地文件缓存
java·分布式·缓存
2401_8454174533 分钟前
set和map
java·开发语言
所愿ღ38 分钟前
JavaWeb-Servlet总结及JSP
java·笔记·servlet
杨杨杨大侠39 分钟前
Atlas Mapper 教程系列 (4/10):高级映射技巧与类型转换
java·开源·github
杨杨杨大侠41 分钟前
Atlas Mapper 教程系列 (3/10):核心注解详解与基础映射
java·开源·github
2301_821046521 小时前
Python的深度学习
开发语言·javascript·ecmascript
tqs_123451 小时前
redis zset 处理大规模数据分页
java·算法·哈希算法