jdk和cglib动态代理区别

  1. 目标类不同

    jdk目标类需要实现接口。

    cglib不需要。

  2. 代理类生成方式不同

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

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

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

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

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

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

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

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

相关推荐
阿文的代码库1 分钟前
如何在C++中使用标准库的智能指针
开发语言·c++·算法
用户298698530141 分钟前
Java 统计 Word 文档中的单词数量
java·后端
yujunl4 分钟前
U9客开Demo代码中的错误
开发语言
郝学胜-神的一滴4 分钟前
Qt 高级开发 008: 使用QSetting记住上次打开路径
开发语言·c++·qt·开源软件
_洋6 分钟前
Three.js 着色器相关方法总结
开发语言·javascript·着色器
aini_lovee6 分钟前
MATLAB 基于多层编码遗传算法的车间调度优化
开发语言·matlab
AI人工智能+电脑小能手10 分钟前
【大白话说Java面试题 第63题】【JVM篇】第23题:工作中用过的JVM常用基本配置参数有哪些?
java·开发语言·jvm·面试
吃好睡好便好11 分钟前
在Matlab中绘制二维直方图
开发语言·人工智能·学习·算法·matlab
June bug12 分钟前
(Mac)torch==2.1.2 与 Python 3.12 不兼容+onnxruntime-silicon 不支持 Intel Mac
开发语言·python·macos
AI科技星13 分钟前
全域粒子质量几何曲率统一公式体系(通俗易懂版)
c语言·开发语言·网络·量子计算·agi