双亲委派机制

双亲委派机制流程

当Application ClassLoader 收到一个类加载请求时,他首先不会自己去尝试加载这个类,而是将这个请求委派给父类加载器Extension ClassLoader去完成。

当Extension ClassLoader收到一个类加载请求时,他首先也不会自己去尝试加载这个类,而是将请求委派给父类加载器Bootstrap ClassLoader去完成。

如果Bootstrap ClassLoader加载失败(在\lib中未找到所需类),就会让Extension ClassLoader尝试加载。

如果Extension ClassLoader也加载失败,就会使用Application ClassLoader加载。

如果Application ClassLoader也加载失败,就会使用自定义加载器去尝试加载。

如果均加载失败,就会抛出ClassNotFoundException异常。

双亲委派机制作用

保证了java的稳定运行,避免了类的重复加载;保证java核心API不被篡改,提高了安全性(如果有人想篡改String类,类加载器优先让启动加载器加载,发现已经加载过了,就不会再加载)

相关推荐
番茄Salad4 分钟前
自定义Spring Boot Starter项目并且在其他项目中通过pom引入使用
java·spring boot
程序员三明治16 分钟前
详解Redis锁误删、原子性难题及Redisson加锁底层原理、WatchDog续约机制
java·数据库·redis·分布式锁·redisson·watchdog·看门狗
自由的疯26 分钟前
Java 怎么学习Kubernetes
java·后端·架构
自由的疯26 分钟前
Java kubernetes
java·后端·架构
普通网友1 小时前
IZT#73193
java·php·程序优化
rechol1 小时前
C++ 继承笔记
java·c++·笔记
Han.miracle4 小时前
数据结构——二叉树的从前序与中序遍历序列构造二叉树
java·数据结构·学习·算法·leetcode
Le1Yu5 小时前
分布式事务以及Seata(XA、AT模式)
java
寒山李白6 小时前
关于Java项目构建/配置工具方式(Gradle-Groovy、Gradle-Kotlin、Maven)的区别于选择
java·kotlin·gradle·maven
无妄无望7 小时前
docker学习(4)容器的生命周期与资源控制
java·学习·docker