第一次加载的类文件

来源:6-6 ClassLoader的双亲委派机制

慕姐9575131

2020-04-24

老师,我有一个疑问,按您说的类加载器从底往上的去查看曾经是否加载过该类,那么对于第一次加载的文件来说,最后都会走到最顶层,然后由bootstrapClassLoader去加载?我的困惑点是,对于第一次加载的文件来说,到底是那一层去把文件转化为class文件?

写回答

1回答

翔仔

2020-04-25

同学好,加载请求都会被传送到顶层的启动类加载器中,只有当父加载无法完成加载请求(它的搜索范围中没找到所需的类)时,子加载器才会尝试去加载类。

使用双亲委派模型的好处在于Java类随着它的类加载器一起具备了一种带有优先级的层次关系。例如类java.lang.Object,它存在在rt.jar中,无论哪一个类加载器要加载这个类,最终都是委派给处于模型最顶端的Bootstrap ClassLoader进行加载,因此Object类在程序的各种类加载器环境中都是同一个类。

对于我们一般应用的class文件来讲,如果不指定是哪个类加载器,默认都会是AppClassLoader,因为它是加载的classpath下面的类文件

0
1
慕姐9575131
非常感谢!
2020-07-16
共1条回复

剑指Java面试-Offer直通车 百度资深面试官授课

招聘季即将到来,让百度资深面试官来为你的高薪Offer保驾护航

8441 学习 · 1872 问题

查看课程