静态编译
在编译时确定类型,绑定对象,即通过。
动态编译
运行时确定类型,绑定对象。动态编译最大限度发挥了java的灵活性,体现了多态的应用,有以降低类之间的藕合性。反射就是运用了动态编译创建对象。
反射的定义
反射是运行中的程序检查自己和软件运行环境的能力,它可以根据它发现的进行改变。通俗的讲就是反射可以在运行时根据指定的类名获得类的信息。
反射机制的定义
Java程序运行状态中,对于任何一个类,都可以获得这个类的所有属性和方法;对于给定的一个对象,都能够调用它的任意一个属性和方法。这种动态获取类的内容以及动态调用对象的方法称为反射机制。
反射机制的作用
允许程序在执行期间借助Reflect API取得任何类的内部信息,并且直接操作任意对象的内部属性和方法。
反射机制提供的具体功能
在运行时判断一个对象所属的类
在运行时任意构造一个类的对象
在运行时判断任意一个类所具有的成员变量和方法
在运行时获取泛型信息
在运行时调用任意一个对象的成员变量和方法】
在运行时处理注解
生成动态代理
反射机制的相关API
java.lang.reflect.Class 代表一个类
java.lang.reflect.Method 代表类的方法
java.lang.reflect.Field 代表类的成员变量
java.lang.reflect.Constructor 代表类的构造器
java.lang.reflect.Field 代表类的成员变量
java.lang.reflect.Parameter 代表类中方法的参数