黑马程序员技术交流社区
标题:
动态代理的问题
[打印本页]
作者:
yp324
时间:
2013-6-3 15:52
标题:
动态代理的问题
Subject是一个接口:
interface Subject{}代码段一:
public static void main(String []args){
RealSubject realSub = new RealSubject();
InvocationHandler handler = new DynamicSubject(realSub);
Subject sub = (Subject)Proxy.newProxyInstance(
handler.getClass.getClassLoader(),
realSub.getClass().getInterfaces(),
handler);
}
代码段二:
public static void main(String []args){
RealSubject realSub = new RealSubject();
InvocationHandler handler = new DynamicSubject(realSub);
Subject sub = (Subject)Proxy.newProxyInstance(
Subject.class.getClassLoader(),
realSub.getClass().getInterfaces(),
handler);
}
经过测试两端代码执行结果都是一样的,问题就是第一段的ClassLoader是来自于handler.getClass.getClassLoader();而第二段代码的ClassLoader是来自于Subject.class.getClassLoader().
请问这两个有什么区别吗?那个ClassLoader到底是拿来干嘛的?
作者:
何俊森
时间:
2013-6-4 22:54
第一段的handler和第二段代码Subject用的一样的类加载器,都是AppClassLoader。类加载器作用是加载类到虚拟机中去运行,负责加载 Java 应用所需的资源。
作者:
袁梦希
时间:
2013-6-12 18:39
问题有些深度 {:soso_e120:}
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2