JVM中classloader双亲委派
public class Test {
public static void main(String[] args) {
// TODO Auto-generated method stub
ClassLoader cl = Test.class.getClassLoader();
while(cl!=null) {
System.out.println(cl.getClass().getName());
cl = cl.getParent();
}
System.out.println(cl);
}
}
以上这段程序运行的结果是:
sun.misc.Launcher$AppClassLoader -->表示Test类的类加载器是AppClassLoader
sun.misc.Launcher$ExtClassLoader -->表示AppClassLoader的类加载器是ExtClassLoader
null -->表示ExtClassLoader的类加载器是BootstrapClassLoader
classloader的体系结构如下
bootstrap classloader(java核心类) native 是由另外一种语言实现的本地方法
|
ext classloader(java 扩展类)
|
classpath appclassloader(应用路径下)
|
uri classloader(uri路径)