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

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

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

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

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

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

参考文章

相关推荐
烤麻辣烫2 分钟前
23种设计模式(新手)-7迪米特原则 合成复用原则
java·开发语言·学习·设计模式·intellij-idea
鹿里噜哩13 分钟前
Spring Authorization Server 打造认证中心(一)项目搭建/集成
java·后端·spring
菠菠萝宝23 分钟前
【Java手搓RAGFlow】-1- 环境准备
java·开发语言·人工智能·llm·openai·rag
Chan1624 分钟前
热点数据自动缓存方案:基于京东 Hotkey 实践
java·数据库·redis·mysql·spring·java-ee·intellij-idea
汤姆yu25 分钟前
基于springboot的智慧家园物业管理系统
java·spring boot·后端
j***294830 分钟前
【SpringBoot】【log】 自定义logback日志配置
java·spring boot·logback
e***09631 分钟前
【Spring】配置文件的使用
java·后端·spring
a***131431 分钟前
【spring专题】编译spring5.3源码
java·后端·spring
n***632732 分钟前
【spring】Spring事件监听器ApplicationListener的使用与源码分析
java·后端·spring
i***486133 分钟前
【spring专题】编译spring5.3源码
java·后端·spring