反射是什么?
指的是在运行状态中,对于任意的一个类,都能知道这个类的所有属性和方法;对于任意一个对象,都能调用它的任意一个方法和属性;这种动态获取信息以及动态调用对象方法的功能叫 Java 语言的反射机制。
什么叫Java序列化
Java 序列化:为保存各种对象在内存中的状态,能将保存的对象状态再读取出来。
哪种情况下要使用序列化?
- 将内存中的对象状态保存到一个文件里或者数据库中时。
- 将套接字在网络上传送对象时。
- 通过 RMI(远程方法调用) 传输对象时。
动态代理是什么?有哪些应用?
运行时动态生成的代理类便是动态代理。
应用:
- Spring AOP
- Hibernate 数据查询
- 测试框架的后端 Mock
- RPC
- Java注解对象获取
如何实现动态代理
- JDK 原生动态代理
- cglib 动态代理。
JDK 原生动态代理是基于接口实现的,而 cglib 是基于继承当前类的子类实现的。