File tree Expand file tree Collapse file tree 2 files changed +10
-5
lines changed
Expand file tree Collapse file tree 2 files changed +10
-5
lines changed Original file line number Diff line number Diff line change 3434 <tr>
3535 <td align="center" valign="middle">
3636 <a href="https://mp.weixin.qq.com/s/li9_YXNVxan6Qgt3Q9FYqA">
37- <img src="./media/sponsor /wangyi.png" style="margin: 0 auto;width:450px" /></a>
37+ <img src="https://guide-blog-images.oss-cn-shenzhen.aliyuncs.com/2020-8 /wangyi.png" style="margin: 0 auto;width:450px" /></a>
3838 </td>
3939 <td align="center" valign="middle">
4040 <a href="https://kaiwu.lagou.com/course/courseInfo.htm?courseId=374&decorateId=82d9388505f147cbae5de546aeb0466e&utm_campaign=gongzhonghaolyw&utm_medium=koushuang&utm_source=weixinlyw#/content">
41- <img src="./media/sponsor /lagou.jpeg" style="margin: 0 auto;width:450px" /></a>
41+ <img src="https://guide-blog-images.oss-cn-shenzhen.aliyuncs.com/2020-8 /lagou.jpeg" style="margin: 0 auto;width:450px" /></a>
4242 </td>
4343 </tr>
4444 </tbody >
Original file line number Diff line number Diff line change 1919 - [ 3.2.3. 代码示例] ( #323-代码示例 )
2020 - [ 3.3. JDK 动态代理和 CGLIB 动态代理对比] ( #33-jdk-动态代理和-cglib-动态代理对比 )
2121- [ 4. 静态代理和动态代理的对比] ( #4-静态代理和动态代理的对比 )
22+ - [ 5. 总结] ( #5-总结 )
2223
2324<!-- /code_chunk_output -->
2425
@@ -405,8 +406,6 @@ send message:java
405406after method send
406407```
407408
408- > 源码地址:[ https://github.com/Snailclimb/guide-rpc-framework-learning/tree/master/src/main/java/github/javaguide/dynamicProxy ] ( https://github.com/Snailclimb/guide-rpc-framework-learning/tree/master/src/main/java/github/javaguide/dynamicProxy ) 。
409-
410409### 3.3. JDK 动态代理和 CGLIB 动态代理对比
411410
4124111 . ** JDK 动态代理只能只能代理实现了接口的类,而 CGLIB 可以代理未实现任何接口的类。** 另外, CGLIB 动态代理是通过生成一个被代理类的子类来拦截被代理类的方法调用,因此不能代理声明为 final 类型的类和方法。
@@ -415,4 +414,10 @@ after method send
415414## 4. 静态代理和动态代理的对比
416415
4174161 . ** 灵活性** :动态代理更加灵活,不需要必须实现接口,可以直接代理实现类,并且可以不需要针对每个目标类都创建一个代理类。另外,静态代理中,接口一旦新增加方法,目标对象和代理对象都要进行修改,这是非常麻烦的!
418- 2 . ** JVM 层面** :静态代理在编译时就将接口、实现类、代理类这些都变成了一个个实际的 class 文件。而动态代理是在运行时动态生成类字节码,并加载到 JVM 中的。
417+ 2 . ** JVM 层面** :静态代理在编译时就将接口、实现类、代理类这些都变成了一个个实际的 class 文件。而动态代理是在运行时动态生成类字节码,并加载到 JVM 中的。
418+
419+ ## 5. 总结
420+
421+ 这篇文章中主要介绍了代理模式的两种实现:静态代理以及动态代理。涵盖了静态代理和动态代理实战、静态代理和动态代理的区别、JDK 动态代理和 Cglib 动态代理区别等内容。
422+
423+ 文中涉及到的所有源码,你可以在这里找到:[ https://github.com/Snailclimb/guide-rpc-framework-learning/tree/master/src/main/java/github/javaguide/proxy ] ( https://github.com/Snailclimb/guide-rpc-framework-learning/tree/master/src/main/java/github/javaguide/proxy ) 。
You can’t perform that action at this time.
0 commit comments