歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux編程 >> Linux編程 >> JVM中classloader雙親委派

JVM中classloader雙親委派

日期:2017/3/1 9:38:29   编辑:Linux編程

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路徑)


所以一般情況下,在classpath下的class都會通過appclassloader去加載

Copyright © Linux教程網 All Rights Reserved