57.什么是反射?
Java反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意方法和属性
58.什么是 java 序列化?什么情况下需要序列化?
序列化:将java对象转换为字节流的过程
反序列化:将字节流转换成 Java 对象的过程
当 Java 对象需要在网络上传输 或者 持久化存储到文件中时,就需要对 Java 对象进行序列化处理
59.动态代理是什么?有哪些应用? *
动态代理:在运行时,创建目标类,可以调用和扩展目标类的方法
应用场景如:
- 统计每个 api 的请求耗时
- 统一的日志输出
- 校验被调用的 api 是否已经登录和权限鉴定
- Spring的 AOP 功能模块就是采用动态代理的机制来实现切面编程
60.怎么实现动态代理?
JDK提供的基于接口的动态代理机制,使用InvocationHandler和Proxy实现
cglib提供的基于继承的动态代理机制,使用Enhancer和MethodInterceptor实现