类加载器
类与类加载器:对于任意一个类,都需要由加载它的类加载器和这个类本身一同确立其在java虚拟机中的唯一性。
双亲委派模型
加载器分类
- 启动类加载器(Bootstrap Classloader),负责加载<JAVA_HOME>\lib目录下的并且是虚拟机识别的文件
- 扩展类加载器(Extension Classloader),负责加载<JAVA_HOME>\lib\ext目录中的文件
- 应用程序类加载器(Application Classloader),系统类加载器,负责加载classPath上所指定的类库
父类委派机制
1
2
3
4
5
6
7
8
9
10
11
12
13
14if (this.ucp.knownToNotExist(var1)) {
Class var5 = this.findLoadedClass(var1);
if (var5 != null) {
if (var2) {
this.resolveClass(var5);
}
return var5;
} else {
throw new ClassNotFoundException(var1);
}
} else {
return super.loadClass(var1, var2);
}