参考答案
CGLIB 与 JDK 对比哪个更快,不同的 jdk 版本,会有差异,以下详解。
-
使用 CGLIB 实现动态代理, CGLIB 底层采用 ASM 字节码生成框架,使用字节码技术生成代理类, 在 jdk6 之前,比使用 Java 反射效率要高。但要注意,由于CGLIB 原理是动态生成被代理类的子类, CGLIB 不能对声明为 final 的方法进行代理 。
-
从jdk6、jdk7 到 jdk8 ,在迭代过程中,逐步对 JDK 动态代理进行了优化。在调用次数较少的情况下,JDK 代理效率高于 CGLIB 代理效率。只有当进行大量调用的时候,jdk6 和 jdk7 比 CGLIB 代理效率低一点,但是到 jdk8 的时候,jdk 代理效率高于 CGLIB 代理。总之,每一次 jdk 版本升级,jdk 代理效率都得到提升,而 CGLIB 代理消息,已经有些跟不上步伐了。
以上,是Java面试题【CGLIB 和 JDK ,哪个更快?】的参考答案。
输出,是最好的学习方法。
欢迎在评论区留下你的问题、笔记或知识点补充~
—end—