文章:
http://tutorials.jenkov.com/java-reflection/dynamic-class-loading-reloading.html
http://segmentfault.com/a/1190000004062880
1、class loader 组成了层次链条结构。当前class loader加载class时,首先交给其parent class loader加载,如果parent class loader无法加载则依次往父加载器的parent class loader 提交,当所有父加载器都不能加载时,最后才由当前class loader尝试去加载;
2、如果ClassA import ClassB, 则由ClassA的class loader 开始加载ClassB。 方法:ClassA.class.getClassLoader();
3、package name + class name + ClassLoader instance 确定了java应用的内存中一个class的唯一性; 所以若要重新load 一个已加载过的class,需生成一个新的加载器去load;
4、android应用的类加载器层次:dalvik.system.PathClassLoader --> java.lang.BootClassLoader。 PathClassLoader可以加载apk或zip包中的class.dex中的类。