反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法和属性;这种动态获取的信息以及动态调用对象的方法的功能称为java语言的反射机制。
Java属于先编译再运行的语言,程序中对象的类型在编译期就确定下来了,而当程序在运行时可能需要动态加载某些类,这些类因为之前用不到,所以没有被加载到JVM。通过反射,可以在运行时动态地创建对象并调用其属性,不需要提前在编译期知道运行的对象是谁。
java反射机制有三个动态特性:
(1)运行时生成对象实例。
(2)运行时调用方法.
(3)运行时更改属性
反射原理:
1 首先明确的概念: 一切皆对象----类也是对象.
2 然后知道类中的内容 :modifier constructor field method.
3 其次明白加载: 当****.class在硬盘中时,是一个文件,当载入到内存中,可以认为是一个对象,是java.lang.class的对象.