1.当某个class类请求加载时,AppClassLoder先去缓存中查找,找到了,就返回;没找到,委托给父加载器(父加载器不一定是父类),以此类推直到Bootstrap ClassLoder;
2.当Bootstrap ClassLoder在缓存中也找不到,就去自己路径 sun.mic.boot.class查找,找到就返回,找不到就让子加载器去找
3.ExtClassLoder同Bootstrap ClassLoder查找方式相同,自己路径是Java.ext.dirs
4.ExtClassLoder找不到,让AppClassLoder查找,自己路径是Java.class.path
5.若AppClassLoder也找不到,就抛异常!
一般情况下,在AppClassLoder下面还有一个 CustomClassLoader:自定义类加载器,可以加载指定文件。
图中 相同颜色箭头为一组;