注解:
即可解释程序本身,又可以被其他程序读取
Target :用来约束注解额能够作用的地方(包,类,方法或属性)
Retention :约束注解的生命周期
Source:注解信息只会保留在源码里 ,编译过后,注解信息会被丢失,不会保留在编译后的Class文件中
CLASS:注解信息会被保留在Class文件中,但在指向的时候,不会加载到虚拟机中
Runtime:注解信息将在运行期也保留,因此可以通过反射机制读取注解信息
反射
反射被认为是动态语言的关键,Java的反射机制是指在程序处于运行状态时,可以构造任意一个类的对象,可以了解任意对象所属的类,可以了解一个类的属性,方法。可以任意调用任何对象的属性和方法。这种动态获取程序信息以及动态调用对象功能的方式成为java语言的反射机制。
其实说白了就是,反射机制就是能够在程序运行期间,加载,探知,使用编译器期间未完成的类
反射的作用:
创建类的对象
获取对象的属性和方法
在JDK中,主要有以下来实现java反射机制
Class类:字节码对象类,每一个类的字节码就是该类的一个对象
Constructor类 :构造方法类,任何一个构造方法都是该类的一个对象;
Field类:属性类,任何属性都是该类的一个对象
Method类:方法类,任何一个方法的都是该类的对象