jdk和cglib动态代理区别

  1. 目标类不同

    jdk目标类需要实现接口。

    cglib不需要。

  2. 代理类生成方式不同

    jdk内部字节码生成代理类。

    cglib使用ASM字节码生成库生成代理类。

  3. 代理类和目标类关系不同

    jdk代理类实现目标类接口,jdk无法代理目标类中static或private的方法。

    cglib 代理类继承目标类重写目标类方法,cglib无法代理final修饰的目标对象或方法。

  4. 调用目标方法方式不同

    jdk通过反射调用目标类方法。

    cglib 通过子类调用父类方式调用。

相关推荐
花心蝴蝶.4 小时前
Java 中的代理模式
java·开发语言·代理模式
风语者6664 小时前
perl踩坑系列=====正则表达式捕获
开发语言·perl
我科绝伦(Huanhuan Zhou)4 小时前
银河麒麟V10编译perl-5.42.0,并设置环境变量
开发语言·perl
舒克起飞了4 小时前
设计模式——单例模式
java·单例模式·设计模式
大飞pkz4 小时前
【设计模式】享元模式
开发语言·设计模式·c#·享元模式
Java&Develop4 小时前
GitLab-如何基于现有项目仓库,复制出新的项目仓库
java
茉莉玫瑰花茶4 小时前
C++扩展 --- 并发支持库(补充3)
开发语言·c++
一只乔哇噻4 小时前
java后端工程师进修ing(研一版‖day49)
java·开发语言
稻草猫.4 小时前
Java线程安全:volatile与wait/notify详解
java·后端·idea
枫叶丹44 小时前
【Qt开发】输入类控件(二)-> QTextEdit
开发语言·qt