1、类加载
2、双亲委派机制
(1)如果一个类加载器收到了类加载请求,它并不会自己先去加载,而是把这个请求委托给父类的加载器去执行。
(2)如果父类的加载器还存在其父类加载器,则进一步向上委托,依次递归,请求最终会到达顶层的启动类加载器。
(3)如果父类加载器可以完成类加载任务,就成功返回,倘若无法完成此加载任务,则委派给它的子加载器去加载。
Application ClassLoader->Extension ClassLoader->BootStrap ClassLoader
总结:如果有个类加载请求来了,会一直向上委托,直到引导类加载器;然后引导类加载器尝试加载,如果它不能加载,则会给他的子加载器扩展类加载器加载;如果扩展类加载器还是不能加载;则再到下一级系统类加载器。
public class Demo4 {
public static void main(String[] args) {
String s=new String();
String1 s1=new String1();
System.out.println(s.getClass().getClassLoader()); //null
System.out.println(s1.getClass().getClassLoader()); //AppClassLoader
}
}