三个类加载器
类加载器
/*知识点:
* 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
}
}