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