一、反射介绍
1、反射介绍
反射:reflect ,通过对字节码文件的分析,动态的获取字节码文件中的内容(成员变量、方法、构造方法)。
反射称为解剖class文件。
2、Class对象
Class
类的实例表示正在运行的 Java 应用程序中的类和接口。枚举是一种类,注解是一种接口。每个数组属于被映射为 Class 对象的一个类,所有具有相同元素类型和维数的数组都共享该 Class
对象。基本的 Java 类型(boolean
、byte
、char
、short
、int
、long
、float
和 double
)和关键字 void
也表示为 Class
对象。
在程序中如果得到Class的对象,就相当于获取到某个类的字节码文件。就可以利用Class类中定义的相关方法分析其中的内容(成员变量、方法、构造方法),进而去执行。
当JVM加载到每个class文件(字节码)时候,这时JVM会针对加载的不同的字节码文件在堆中创建每个字节码文件对应的各自的Class的对象。在程序通过new关键字创建出来的任何实例,其实都是基于当前Class对象而创建的。