1、什么是反射
反射是在运行状态中,对于任意一个类,能够知道这个类的所有属性和方法;
对于任意一个对象,能够调用它的任意一个方法和属性;这种动态获取信息以及动态调用对象的方法的功能称为
Java
语言的反射机制
2、什么是序列化?什么情况下需要序列化、
Java序列化是为了保存各种对象在内存中的额状态,并且可以把保存的对象的状态再读出来。
以下情况需要使用Java序列化;
- 想把内存中的对象状态保存到一个文件中活着数据库的时候
- 想要套接字在网络上传送对象的时候
- 想通过RMI(远程方法调用)传输对象的时候
3、动态代理是什么?有哪些应用?
动态代理是运行时动态生成代理类
JDK动态代理;CGLIB动态代理
动态代理的应用有
Spring AOP、测试框架的后端、mock\rpc,Java注解对象获取等
4、怎样实现动态代理?
JDK
原生动态代理和CGLIB
动态代理。
JDK
原生动态代理是基于接口实现的,而CGLOB
是基于继承当前类的子类实现的。