CGLIB 和 JDK ,哪个更快?

参考答案

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—

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧