JDK动态代理原理探究

public static Object newProxyInstance(ClassLoader loader, Class<?>[] interfaces, InvocationHandler h)

根据所有继承的接口,动态操作字节码,实现得到一个子类Class,该Class具有被代理对象类的一切接口实现方法。不过最先得到的,应该是空实现的Class,重写了全部接口方法。空实现中,并不空。每一个实现方法中,都调用了成员属性h的invoke方法。接下来,用参数h对象给Class中的成员属性h赋值。然后Class对象的实例在执行任何方法时,内部都是真正的h实例在执行它自己的invoke方法。

源码初步分析,确实如此。可能有少许偏差。

源码分析,待续...

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 转至元数据结尾创建: 董潇伟,最新修改于: 十二月 23, 2016 转至元数据起始第一章:isa和Class一....
    40c0490e5268阅读 5,801评论 0 9
  • 一、基本概念 1.什么是代理? 在阐述JDK动态代理之前,我们很有必要先来弄明白代理的概念。代理这个词本身并不是计...
    小李弹花阅读 16,504评论 2 40
  • Swift1> Swift和OC的区别1.1> Swift没有地址/指针的概念1.2> 泛型1.3> 类型严谨 对...
    cosWriter阅读 13,793评论 1 32
  • 1. 早上小人和婆婆一起玩。 近八十的婆婆的说了句:我的娘哎! 两岁八个月的小人问:什么...
    凤凰爱番茄阅读 2,806评论 0 0
  • 我的爸爸。 我很少说他。 我有一半来自我的爸爸。 我很像爸爸, 像他那样心里喜欢想事情, 总是对别人说自己不重要,...
    carol晓霞阅读 1,690评论 2 0