双亲委派机制指的是:
自底向上查找是否加载过,再由顶向下进行加载。
一、类加载器的双亲委派机制
在java中如何使用代码的方式去主动加载一个类?
- 使用Class.forName方法 , 使用当前类的类加载器去加载指定的类
- 获取到类加载器, 通过类加载器的LoadClass方法指定某个类加载器加载
- 每个java实现的类加载器中保存了一个成员变量叫 “父”(Parent) 类加载器
可以理解为他的上级 并不是继承关系
- 应用程序类加载器的parent父类加载器是扩展类加载器 ,扩展类加载器的parent是空
- 启动类加载器使用C++编写没有上级类加载器
- 再累加载的过程中,每个类加载器都会先检查是否已经加载了该类,如果已经加载则直接返回
否则会将加载请求委派给父类加载器
- 如果类加载的parent为null , 则会提交给启动类加载器处理
- 如果所有的父类加载器都无法加载该类 , 则由当前类加载器尝试加载 .所以看上去是自顶向下的尝试加载
- 第二次再去加载相同的类 , 仍然会向上进行委派 , 如果某个类加载器加载过就会直接返回