三個類加載器
類加載器
/*知識點:
* 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
}
}