類加載器

三個類加載器

類加載器

/*知識點:
 * 1)父類委託機制:
 * 如果把Person.class類打包成.jar
 * 並放到 JRE/lib/rt.jar目錄下,則無論當前項目中如何修改person類,運行時都不會改變
 * 2)加載classpath以外的class文件,必須要直接做類加載器。
 * 
 */
public class ClassLoaderDemo {
//三個類加載器、BootStrap(JRE/lib/rt.jar)、ExtClassLoader(JRE/lib/ext/*.jar)、
//AppClassLoader(classpath指定的所有jar或目錄)

@Test
public void demo1(){
ClassLoader loader=Person.class.getClassLoader();//獲得類加載AppClassLoader
System.out.println(">>>:"+loader);
loader=loader.getParent();//ExtClassLoader
System.out.println(">>>:"+loader);
loader=loader.getParent();//null(控制檯結果)  BootStrap
System.out.println(">>>:"+loader);

//jar 中的類都是由BootStrap加載的
ClassLoader loader1=String.class.getClassLoader();
System.out.println(">>>>:"+loader1);//null(控制檯結果)  BootStrap
}


}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章