A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© star5603 高级黑马   /  2014-8-7 10:56  /  1217 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 star5603 于 2014-8-7 13:21 编辑

类加载器加载当前类时,引用到了另一个类,那这个类也是由当前类加载器加载,但如果当前类是由自己自定义的类加载器或者是app加载器加载的,当前类引用到了System,那是当前类加载器去加载,还是会调用bootStrap去加载?

评分

参与人数 1技术分 +1 收起 理由
格子、 + 1 类加载器的委托机制

查看全部评分

5 个回复

倒序浏览
应该是会调用bootStrap去加载,毕竟委托机制是这样的,而且还安全
回复 使用道具 举报
如果你自定义类加载器时只重写了findClass方法,那么就是BootStrap,因为类加载委托机制的逻辑并不是在findClass中实现的,而是在loadClass中。当然你可以重写loadClass方法来破坏默认的委托加载机制,loadClass的访问修饰符是protected,允许子类继承、重写

评分

参与人数 1技术分 +1 收起 理由
格子、 + 1 赞一个!

查看全部评分

回复 使用道具 举报
fantacyleo 发表于 2014-8-7 12:54
如果你自定义类加载器时只重写了findClass方法,那么就是BootStrap,因为类加载委托机制的逻辑并不是在find ...

那就是说,当前线程执行到了下一个类时,即使加载了前一个类,在执行下一个类时,还是会继续委托机制。
回复 使用道具 举报
star5603 发表于 2014-8-7 13:08
那就是说,当前线程执行到了下一个类时,即使加载了前一个类,在执行下一个类时,还是会继续委托机制。 ...

那是肯定的,每加载一个类就是调一次loadClass方法,走一遍委托机制
回复 使用道具 举报
fantacyleo 发表于 2014-8-7 13:14
那是肯定的,每加载一个类就是调一次loadClass方法,走一遍委托机制

ok,谢了
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马