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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© code_geass 中级黑马   /  2013-8-28 18:26  /  1862 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 code_geass 于 2013-8-28 18:29 编辑

APPClassLoader和ExtClassLoader都继承了URLClassLoader。Launcher初始化时当前线程默认是AppCLassLoader。委托加载器是ExtClassLoader。然后再委托给BootStrap。如果BootStrap找不到。交给ExtClassLoader的findClass。但是再找不到就是抛异常了吧?在哪里交给AppClassLoader了?
  1. protected Class<?> findClass(final String name)
  2.          throws ClassNotFoundException
  3.     {
  4.         try {
  5.             return AccessController.doPrivileged(
  6.                 new PrivilegedExceptionAction<Class>() {
  7.                     public Class run() throws ClassNotFoundException {
  8.                         String path = name.replace('.', '/').concat(".class");
  9.                         Resource res = ucp.getResource(path, false);
  10.                         if (res != null) {
  11.                             try {
  12.                                 return defineClass(name, res);
  13.                             } catch (IOException e) {
  14.                                 throw new ClassNotFoundException(name, e);
  15.                             }
  16.                         } else {
  17.                             throw new ClassNotFoundException(name);
  18.                         }
  19.                     }
  20.                 }, acc);
  21.         } catch (java.security.PrivilegedActionException pae) {
  22.             throw (ClassNotFoundException) pae.getException();
  23.         }
  24.     }
复制代码
还有这个findClass方法里最后没有返回值。为什么自己覆盖的那个findClass里已经return了defineClass了最后还要写一个return?

评分

参与人数 1技术分 +1 收起 理由
黄兴旺 + 1

查看全部评分

5 个回复

倒序浏览
应该是在这里回调
回复 使用道具 举报
定义回调接口 实现回调方法

2.png (5.76 KB, 下载次数: 18)

2.png

评分

参与人数 1技术分 +1 收起 理由
黄兴旺 + 1 赞一个!

查看全部评分

回复 使用道具 举报
类加载器的委托循环应该是要回到发起者 即加载这个类的类加载器。。。所以应该回到AppCLassLoader类加载器。。当这个还找不到就报异常。。
回复 使用道具 举报
范龙波 发表于 2013-8-28 19:58
定义回调接口实现回调方法

这个是回调? 这个不是访问控制特权么。。
回复 使用道具 举报
如果您的问题已经解决
请更改分类未解决为已解决
保持队形,谢谢合作

详情参考 如何修改分类


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