黑马程序员技术交流社区

标题: 当Java虚拟机要加载一个类时,应派出哪个类加载器去加载 [打印本页]

作者: code2014    时间: 2014-5-9 18:00
标题: 当Java虚拟机要加载一个类时,应派出哪个类加载器去加载

  这是我看视频时,做的笔记,对委托机制不清楚:
1.首先是当前线程的类加载器去加载线程中的第一个类。

2.还可以直接调用ClassLoader.loadClass()方法来指定某个类加载器去加载某个类。
3当所有祖宗类加载器没有加载到类,回到发起者类加载器,还加载不了,则抛ClassNotFoundException

在视频中有这样一个例子:
ClassLoaderTest输出成jre/lib/ext目录下的itcast.jar包中后,运行结果为ExtClassLoader
这与 “首先是 当前线程的类加载器去加载线程中的第一个类”   有矛盾吗?
若 BootSrap 类加载器、  ExtClassLoader、AppClassLoad 中都有 对应的类,那应该使用哪一个加载器?

加载器的委托模式,是先一级级向上委托到BootStrap后再向下一级级查找要加载的类,  还是 直接先从BootStrap 向下查找要加载的类呢?



作者: code2014    时间: 2014-5-10 08:12
:( 求答案啊




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2