一、双亲委托机制
1.1 双亲委托机制概述
双亲委托机制
是指当一个类加载器收到一个类加载请求时,
-
该类加载器首先会把请求委派给父类加载器。
-
如果父类加载器还存在父类加载器,则会一直向上委派,直至最终交由顶层的启动类加载器完成类加载,
-
每个类加载器都是如此,只有在所有的父类加载器在自己的搜索范围内找不到指定类时,子类加载器才会尝试自己去加载。
这样做的好处是可以保证相同的类在不同的类加载器环境中都只会被加载一次,避免不同类加载器之间重复加载的问题。
1.2 Java语言系统中支持一下4种类加载器的层次关系
- Bootstrap ClassLoader启动类加载器
- Extention ClassLoader标准扩展类加载器
- Application ClassLoader应用类加载器
- User ClassLoader用户自定义类加载器
这四种类加载器之间,是存在着一种层次关系的,如下图:
其实,Java中提供的四种类型的加载器,是各有各自的职责的: