1、什么是反射
在运行状态下,反射可以得到类的类名,构造器,属性,成员方法;
反射可以使用类的全限定类名动态创建该类实例,降低代码的耦合度,提高了代码的维护性,但会增加系统资源
的消耗;
2、什么是 Java 序列化?什么情况下需要序列化?
java序列化指的是将java对象转化为json格式;
一般用于前后端交互,后端向前端传送对象数据时将其转换为json格式,涉及到的注解有@RestController和
@ResponseBody
3、动态代理是什么?有哪些应用?
在不修改原类的基础上对原类的方法进行改造,使其具备一些额外的功能,这便是代理模式。
而动态代理是根据需求生成代理类,使其具备被代理类的功能同时具备其他自定义的功能,如增添日志等。
同时动态代理在降低代码耦合度的同时也可以简化代码,无需对被代理类的方法逐一修改。
典型的应用有springAop
4、怎么实现动态代理?
实现动态代理的步骤
1、定义被代理接口subject;
2、定义被代理接口实现类subjectImpl;
3、定义代理工具类实现InvoctionHandler接口,将被代理接口subject作为其构造函数形参。并重写invoke
方法添加自定义功能;
4、使用proxy类的newInstance方法创建代理对象;
5、调用代理对象中增强的方法;