java反射和动态代理

java反射

反射是程序运行时,通过反射直接操作对象或者类。获取类声明的属性和方法,调用方法或者构造对象,设置修改类的定义(包括类的成员访问限制)。说白了就是利用java反射机制我们可以加载一个运行时才得知名称的class,获悉其构造方法,并生成其对象实体,能对其fields设值唤起method。会消耗一定的系统资源,因此如果不要动态创建一个对象,就不需要用反射,另外反射调用方法时可以忽略权限检查,因此可能破坏封装性导致安全问题。

动态代理

是一种方便运行时动态构建代理、动态处理代理放大调用的机制。代理可以看做是对调用目标的一个包装,我们对目标代码的调用不是直接发生的,而是通过代理完成。可以通过代理让调用者与实现者之间解耦。动态代理不关心代理谁,而是在运行阶段才指定代理代理哪个对象。如果自己写代理类就是静态代理

你可能感兴趣的:(java反射和动态代理)