谈谈 Java 反射机制,动态代理是基于什么原理

反射机制是java提供的一种基础功能,赋予程序在运行时自省的能力(introspect),通过反射我们可以操作类或者对象,比如获取某个对象的类定义,获取类声明的属性或者方法,调用方法或者操作对象,甚至可以运行时修改类的定义。

动态代理是方便运行时动态创建代理对象,动态处理代理方法调用的机制,比如包装rpt,面向切面编程aop等。

实现动态代理的方式有很多,比如jdk自身提供的动态代理,就是主要用到了上面的反射机制。还有其他的实现方式,比如利用传说中更高性能的字节码操作机制,类似 ASM、cglib(基于 ASM)、Javassist 等。

猜你喜欢

转载自www.cnblogs.com/peng1234/p/13406619.html