什么是反射?应用?原理?

  • 反射允许Java在运行时检查和操作 类的方法和字段。
  • 通过反射,可以动态地获取类的字段、方法、构造方法等信息,
  • 并在运行时调用方法或访问字段。

比如创建一个对象是通过new关键字来实现的:

Person person = new Person();

Person类的信息在编译时就确定了,
那假如在编译期无法确定类的信息,但又想在运行时获取类的信息、创建类的实例、调用类的方法,这时候就要用到反射。

反射功能主要通过java.lang.Class类 及java.lang.reflect 包中的 类如Method、Field、Constructor等来实现。

反射有哪些应用场景?

  1. Spring框架大量使用了反射来动态加载和管理Bean。
  2. Java的动态代理(Dynamic Proxy) 机制就使用了反射来创建代理类。
  • 代理类可以在运行时动态处理方法调用。
  • 这在实现AOP和拦截器时非常有用。
  1. JUnit和TestNG等测试框架使用反射机制来发现和执行测试方法。
  • 反射允许框架扫描类,查找带有特定注解(如@Test)的方法,并在运行时调用它们。

反射的原理是什么?

Java程序的执行分为编译和运行两步,

  • 编译之后会生成字节码(.class)文件,
  • JVM进行类加载的时候,会加载字节码文件,
  • 将类型相关的所有信息加载进方法区,反射就是去获取这些信息,然后进行操作。
posted @ 2025-05-31 17:22  kuki'  阅读(24)  评论(0)    收藏  举报