乐趣区

JAVA面试题15

本文首发于 cartoon 的博客

  • 什么是反射?

    • 主要指程序可以访问、检测和修改它本身状态或行为的一种能力
    • JAVA 反射机制提供:

      • 在运行时判断任意一个对象所属的类
      • 在运行时任意构造任意类的对象
      • 在运行时判断任意一个类所具有的成员变量和方法
      • 在运行时调用任意一个对象的方法
  • 什么是 Java 序列化?什么情况下需要序列化?

    • 序列化是一种用来处理对象流的机制
    • 序列化就是将实现序列化的 JAVA 对象写入到 IO 流中
    • 序列化允许 JAVA 都西昂脱离程序单独存在
    • 传递或保存对象时保证对象完整性和传递性需要序列化
  • 动态代理是什么?有哪些应用?

    • 动态代理指在运行中动态初始化并加载类,并生成对象的过程
    • 动态代理目的为其他对象提供一个代理以控制某个对象的访问
    • 应用:Spring 的 AOP、IOC
  • 怎么实现动态代理?

    • 提供业务接口
    • 实现该业务接口
    • 实现 InvocationHandler 接口,重写 invoke 方法,在对象生成的前后插入自身逻辑
    • 调用 Method 的成员方法 invoke 生成 Object 类对象
    • 调用方法使用泛型指定生成 Object 类的类型,得到 invoke 方法返回的具体对象
退出移动版