一.反射机制
- 程序再运行时候能够获得自身类的信息。只要有类名就能使用反射机制。
java程序运行的过程:
(1).java-----------javac编译,生成.class文件(字节码文件)---------运行时字节码文件转换为一个class对象。
(2)反射机制可以获取到的信息:
①属性(Fields) ②成员方法(Methods) ③构造方法(Constructor)
二.Class对象
1.在java世界里,一切皆对象。从某种意义上来说,java有两种对象:实例对象和Class对象。每个类的运行时的类型信息就是用Class对象表示的。它包含了与类有关的信息。其实我们的实例对象就通过Class对象来创建的。Java使用Class对象执行其RTTI(运行时类型识别,Run-Time Type Identification),多态是基于RTTI实现的。
2.获取Class对象的三种方式:
(1)类名.class : Class class1 = Student.class;
(2)Class.forName(“类全限定名[包.类名]”) ; :Class.forName(“TuLun.Student”);
(3)对象.getClass(); :Class class3 = new Student().getClass();
3.通过反射new一个对象 (面试题)
Class cla = Student.class;
Constructor constructor = cla.getConstructor();
Student stu = (Student)constructor.newInstance();