歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux編程 >> Linux編程

JVM中classloader雙親委派

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