p { margin-bottom: 0.21cm; }
派出某个类加载器加载类的加载
1. 首先当前线程的类加载器去加载线程中的第一个类。
2. 如果A 类引用了B 类,jav 将继续有A 类的类加载器去加载B 类
3. 还可以用CllassLoader.loadClass 方法指定某个类加载器去加载某个类
类加载器的委托机制
优先委托给上级类加载器加载
每一个类首先由首先ExtClassLoader 去加载线程中的类, 如果还有子类加载器也就会交给父类去加载,如果找不到就委托给上一级BootStrap 类加载器加载 如果BootStrap 类加载器还是没加载到,他会按照原路返回到发起者类加载器处,再由发起者寻找一次, 如果发起者还是没有寻找到 就抛出异常
所以 如果我们再写一个java.lang.System 类默认情况下不会被类加载加载 如果要加载 我们需要自己写一个类加载器 并且不优先上级
这样做的好处是不会产生垃圾文件,类加载器从父类开始找 , 不会存在一份字节码在运行期间被加载两次