
设计模式
春天的枯草
学习爱好者
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
JDK动态代理[1]---静态代理和动态代理
静态代理 定义接口 public interface Subject { void visit();} 创建真正实现的类 public class RealSubject implements Subject { private String name = "proxy.state"; @Override public void visi...转载 2018-11-02 10:48:59 · 198 阅读 · 0 评论 -
JDK动态代理[3]---JDK动态代理的WeakCache缓存的实现机制
原文地址Proxy内部用到了缓存机制,如果根据提供的类加载器和接口数组能在缓存中找到代理类就直接返回该代理类,否则会调用ProxyClassFactory工厂去生成代理类。这里用到的缓存是二级缓存,它的一级缓存key是根据类加载器生成的,二级缓存key是根据接口数组生成的。具体的内部机制我们直接贴上代码详细解释。//Reference引用队列private final Referenc...转载 2018-11-01 15:15:16 · 331 阅读 · 0 评论 -
JDK动态代理[2]---JDK动态代理的底层实现之Proxy源码分析
原文地址Proxy类的静态方法newProxyInstance方法去生成一个代理类,这个静态方法接收三个参数,分别是目标类的类加载器,目标类实现的接口集合,InvocationHandler实例,最后返回一个Object类型的代理类。我们先从该方法开始,看看代理类是怎样一步一步造出来的,废话不多说,直接上代码public static Object newProxyInstance(Cl...转载 2018-11-01 15:21:42 · 250 阅读 · 0 评论 -
JDK动态代理[4]---ProxyGenerator生成代理类的字节码文件解析
原文地址代理类是通过Proxy类的ProxyClassFactory工厂生成的,这个工厂类会去调用ProxyGenerator类的generateProxyClass()方法来生成代理类的字节码。ProxyGenerator这个类存放在sun.misc包下,我们可以通过OpenJDK源码来找到这个类,该类的generateProxyClass()静态方法的核心内容就是去调用generateCl...转载 2018-11-02 10:47:09 · 795 阅读 · 0 评论