不同的CLASS由不同的ClassLoader负责加载
一个JVM虚拟机里默认的CLASSLOADE有Bootstrap ClassLoader、App ClassLoader、Extension ClassLoader,
需要注意的是,Bootstrap ClassLoader是JVM级别的,是用C++编写,比较特殊,一般咱都看不到,值是NULL。
而Extension ClassLoader、App ClassLoader都是java类。
在启动的时候,JVM先启动Bootstrap ClassLoader,然后再初始化sun.misc.Launcher ,然后由sun.misc.Launcher初始化Extension ClassLoader、App ClassLoader。
在加载一个类时,首先会由Bootstrap ClassLoader先进行寻找,找不到了才再由Extension ClassLoader寻找,最后才是App ClassLoader。
至于再具体的过程,本人就才疏学浅了,只能拜请高人指点了~~~
希望能够帮助到楼主吧,版主也幸苦了~~~
|