笔记
动态代理
00 min
2023-3-11
2024-1-9
type
status
date
slug
summary
tags
category
icon
password
Java 动态代理一般分为 JDK 动态代理和 CGLIB 动态代理,二者的区别如下:
  1. JDK 动态代理是基于接口的代理,只能代理实现了接口的类,而 CGLIB 动态代理是基于继承的代理,可以代理未实现接口的类。
  1. JDK 动态代理生成的代理对象性能较低,因为每次生成代理对象时都需要通过反射来进行,而 CGLIB 动态代理在生成代理对象时会使用代码生成技术,性能更高。
以下是 JDK 动态代理和 CGLIB 动态代理的代码实现:
JDK 动态代理:
CGLIB 动态代理: