JDK动态代理和CGLIB代理生成的区别

1、JDK动态代理只能对实现了接口的类生成代理,而不能针对类。

2、CGLIB是针对类实现代理,主要是对指定的类生成一个子类,覆盖其中的方法。因为是继承,所以该类或方法最好不要声明成final,final可以阻止继承和多态。

3、final所修饰的数据具有“终态”的特征,表示“最终的”意思:

(1)final修饰的类不能被继承。

(2)final修饰的方法不能被子类重写。

(3)fianl修饰的变量(成员变量或局部变量)即成为常量,只能赋值一次。

(4)final修饰的成员变量必须在声明的同时赋值,如果在声明的时候没有赋值,那么只有一次赋值的机会,而且只能在构造方法中显式赋值,然后才能使用。

(5)final修饰的局部变量可以只声明为不赋值,然后再进行一次性的赋值。

猜你喜欢

转载自blog.csdn.net/qq_42093488/article/details/82260731
今日推荐