一、反射背景
对于Java程序,要使程序能够运行,那么就得让Java类要被Java虚拟机加载。Java类如果不被Java虚拟机加载,是不能正常运行的。现在我们运行的所有的程序都是在编译期的时候就已经知道了你所需要的那个类的已经被加载了。
Java的反射机制是在编译并不确定是哪个类被加载了,而是在程序运行的时候才加载、探知、自审。使用在编译期并不知道的类。这样的特点就是反射。
二、反射概念
反射机制是指Java程序在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法和属性;Java虚拟机动态获取类的信息以及动态调用对象的方法的功能就是java语言的反射。
三、Java反射机制能做什么
反射机制主要提供了以下功能:
-
在运行时获取任意一个对象所属的类;
-
在运行时构造任意一个类的对象;
-
在运行时获取任意一个类所具有的成员变量和方法;
-
在运行时调用任意一个对象的方法;
-
生成动态代理。