网上有很多案例或者博客都相对的讲出了JVM的双亲委派机制,但是一上来就强调什么父子继承体系。
这个从语义上来说是这么个关系,但是从运行上来说却完全不是这么一回事。
双亲委派详细流程图
重点
父加载器不是“类加载器的父类加载器”!!!
双亲委派是一个孩子向父亲(上级)方向,然后父亲向孩子方向的双亲委派过程
为什么要用双亲委派?
-
安全问题(⭐️)
- 如果一个自定义类加载器,可以自由的加载任何资源。
那么是他就可以加载一个java.lang.String的包
假设在将这个类打成jar包,发给客户,客户如果password采用的String ,那么就会被记录,发送邮件等等操作
这样是及其不安全的
- 如果一个自定义类加载器,可以自由的加载任何资源。
-
避免资源浪费
- 如果上级加载器已经加载了对应的类,那么当前类加载就不需要再次加载