----------------------
ASP.Net+Android+IO开发S、
.Net培训、期待与您交流! ----------------------
一.概况
1. 系统默认三个主要类加载器:
BootStrap //不是java类,是C++语言编写的,在JVM内核中!
ExtClassLoader //java类
AppClassLoader //java类
2. 加载器之间有父子关系
3. 每个类负责加载特定位置的类
4.可以调用ClassLoader.loadClass()方法来指定每个加载器加载某个类。
二.运行机制
1. 如果类A中引用了类B,java虚拟机将使用加载类A的加载器来加载类B。
2.委托机制:
每个类加载器加载类时,会先委托给其上级类加载器。这样一层层委托上去,直到最上层的加载器。此时,由该祖宗类加载器去加载目标类,如果加载失败(因为每个加载器都有自己的负责路径目录,如果目标类不在自己的目录下,当然失败),则按原路返回,由下一层加载器加载。如果退到该加载申请的加载器还加载失败的话,则放弃加载,返回false,而不会委托给子类。
三.加载器关系图和管辖范围