小仙
空间换时间这段讲解的精彩啊
作者回复:🙏
2021-07-13
1
Geek1560
所有程序员都要注意!避免重复造轮子!
作者回复:哈哈
2021-01-17
2
斜杠青年
循序渐进 二刷
作者回复:666
2021-01-03
J.Smile
关键步骤整理:
①克隆入参interfaces.clone(),防止在代理生成时接口被替换修改。
②从Proxy的proxyClassCache属性中获取生成的代理Class.->proxyClassCache.get(loader, interfaces)
③第2步中会调用Proxy的内部类ProxyClassFactory的apply方法,会试图加载interface对应的interfaceClass,并在之后进行
interfaceClass的一系列校验,如是否等于输入的接口的Class类型intf、是否是接口类型、此次加载的接口Class是否已经重复。
校验不通过则抛出异常。通过进入第4步。
④对校验通过的intf生成代理proxyName,格式为:proxyPkg + proxyClassNamePrefix + num;然后通过native方法defineClass0生成代理Class。
这个proxyClass继承了Proxy类并且实现了输入的intf接口
⑤根据proxyClass的有参构造方法(参数为{ InvocationHandler.class })实例化代理对象。
作者回复:666
2020-12-20
6
麟的微笑
赶紧上了车,系好安全带,跟小马哥一起开阔视野
作者回复:坐稳了~
2020-12-19
aquavit
小马哥,动态代理生成的代理类,为啥要继承 Proxy,代理类里面也没有对Proxy属性和方法的引用,这块有没有什么设计思想在里面呢?
作者回复:动态代理生成类继承了 Proxy 只有,可以方便的关联 InvocationHandler 对象,而这个对象就是用户自定义实现的。
2020-12-18
GJ
只能说小马哥牛🐂!听完三节感觉可以手撸简单aop框架~
作者回复:哈哈,过奖~
2020-12-18
1
惘 闻
从核心编程思想一路跟到这里了,等待明天的更新
作者回复:已更新~
2020-12-16
璞
学完了,小马哥讲的真好
作者回复:又更新了,快去看~
2020-12-13
斜杠青年
老师讲的确实是好!
作者回复:感谢支持,一起努力~
2020-12-12
编辑推荐
讲师的其他课程
包含这门课的学习路径
Java工程师
29门课程 154.7w人学习
看过的人还看了