关于AppClassLoader的findClass()方法

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

YogurtJ

2020-02-04

老师您好,在视频中有这样的一句话 “AppClassLoader去调用它自定的findClass方法去到他的ClassPath下面去找找,有没有这个类文件,有的话装载进来返回”

可是在我看AppClassLoader的源码的时候,没有看到它重写了findClass方法,那它又是怎么实现去它所要对应的目录下面去寻找 是否有 要寻找的.class文件呢?

如果直接用ClassLoader下面定义的findClass方法,不就抛出ClassNotFoundException了。

关于这里的疑惑,希望祥仔可以给予解答,非常感谢~

写回答

3回答

翔仔

2020-02-06

同学好,都在ClassLoaders这个类里面呢

private static class AppClassLoader extends BuiltinClassLoader {
    static {
        if (!ClassLoader.registerAsParallelCapable())
            throw new InternalError();
    }

这个写着的呢,同学用idea查找类,输入AppClassLoader就知道拉

1
0

YogurtJ

提问者

2020-02-06

//img.mukewang.com/szimg/5e3af6480801be2316000873.jpg

//img.mukewang.com/szimg/5e3af6480869abe616001094.jpg

老师您看下,是我的IDEA使用方法哪里有问题嘛...没能看到AppClassLoader.java ,只有AppClassLoader.class点进去了之后就是我说的继承自URLClassLoader了,没看到您这里的BuiltinClassLoader

0
2
YogurtJ
回复
翔仔
感谢~
2020-02-08
共2条回复

翔仔

2020-02-05

同学好,感兴趣可以看看BuiltinClassLoader的findClass方法,因为AppClassLoader extends BuiltinClassLoader,所以用它的findClass

0
1
YogurtJ
老师您好,在IDEA里只能看到AppClassLoader继承的URLClassLoader的源码呀。还想请教一下如何查看BuiltinClassLoader的源码,谢谢老师
2020-02-05
共1条回复

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

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

8427 学习 · 1870 问题

查看课程