本文首发于 cartoon 的博客
-
什么是反射?
- 主要指程序可以访问、检测和修改它本身状态或行为的一种能力
-
JAVA 反射机制提供:
- 在运行时判断任意一个对象所属的类
- 在运行时任意构造任意类的对象
- 在运行时判断任意一个类所具有的成员变量和方法
- 在运行时调用任意一个对象的方法
-
什么是 Java 序列化?什么情况下需要序列化?
- 序列化是一种用来处理对象流的机制
- 序列化就是将实现序列化的 JAVA 对象写入到 IO 流中
- 序列化允许 JAVA 都西昂脱离程序单独存在
- 传递或保存对象时保证对象完整性和传递性需要序列化
-
动态代理是什么?有哪些应用?
- 动态代理指在运行中动态初始化并加载类,并生成对象的过程
- 动态代理目的为其他对象提供一个代理以控制某个对象的访问
- 应用:Spring 的 AOP、IOC
-
怎么实现动态代理?
- 提供业务接口
- 实现该业务接口
- 实现 InvocationHandler 接口,重写 invoke 方法,在对象生成的前后插入自身逻辑
- 调用 Method 的成员方法 invoke 生成 Object 类对象
- 调用方法使用泛型指定生成 Object 类的类型,得到 invoke 方法返回的具体对象