java_反射
java_反射 什么是反射 概念 放射:将类的各个部分封装为其他对象,这就是反射机制。 java代码在内存中经历的三个阶段 1、 Source 源代码阶段 执行javac编译命令从.java文件到.class文件的过程都是在源代码阶段,.class字节码文件会将类分为多个部分,其中分为成员变量部分,成员方法部分,构造方法部分等。 2、 Class 类对象阶段 通过ClassLoader(类加载器)将字节码文件加载到内存中。 通过Class类对象来描述进入内存中的字节码文件的特征和行为。将成员变量、成员方法、构造方法等封装成单独的对象放入Class类对象中。 最后我们可以通过Class对象的一些行为创建具体的某个对象。 3、 runtime 运行时阶段 new 类(); 反射的好处 在程序的运行期间操作这些对象。 降低程序的耦合性,提高程序的可扩展性。 获取Class类对象的方法 获取class类对象的方式有三种,分别对应的java代码经历的三个阶段 1、 Class.forName("全类名"); 将字节码文件加载进内存,返回class对象 多用于配置文件,将类名定义在配置文件中 2、 类名.class; 通过类名的属性class获取 多用于参数传递 3、 对象.getClass(); getClass()方法是定义在Object类中的 多用于对象获取字节码 同一个字节码文件(*