系统设计Java
- 分类
- Java JVM
- 难度
- 未设置
- 来源数
- 1
- 更新时间
- 2026/03/29 15:43
答案
JDK Proxy要求代理类必须实现接口,而CGLIB是完全不受这个限制的。 JDK Proxy是java自带的功能,无需引入第三方类,通过拦截器加反射实现,使用比较简单。 而CGLIB是第三方提供的工具,基于ASM,性能较高,它通过给指定目标类生成一个子类,覆盖它的方法来实现增强,因此不能对final修饰的类进行代理。
相关题目(5)
元信息
审核状态: active
关联来源: 1
来源面经题(0)
这道题目前没有手动沉淀的面经题来源。
来源(1)
Java八股(框架).md
knowledge_noteQuestion 25: CGLIB 和 JDK Proxy 的区别?
Source answer: JDK Proxy要求代理类必须实现接口,而CGLIB是完全不受这个限制的。 JDK Proxy是java自带的功能,无需引入第三方类,通过拦截器加反射实现,使用比较简单。 而CGLIB是第三方提供的工具,基于ASM,性能较高,它通过给指定目标类生成一个子类,覆盖它的方法来实现增强,因此不能对final修饰的类进行代理。
Reviewed answer: JDK 动态代理要求目标类实现接口;CGLIB 通过生成子类代理,不依赖接口,但不能代理 final 类或 final 方法。JDK 是原生方案,CGLIB 基于字节码增强。