保留在Java 文件当中 ;
保留在class 文件当中 ;
在JVM执行过程当中依旧能够获取。
通常需要使用反射来获取内容;
使用注解是必须掌握的内容,而开发注解不需要大家在日常工作当中,时常接触。
element Type:指定注解的使用范围
Retention Policy: 指定注解存活的位置
声明自定义注解:
在接口关键字interface之前添加@符号
自定义注解:
默认情况下,注解只存在于class文件当中的。如果要让该注解在实际开发中,被反射获取,那么我们需要使用元注解:
a、声明抽象方法,方法名为属性名,方法返回值为属性类型
b、可以在抽象方法之后,添加default给定默认值,有默认值的属性,可以不必一定给值
@Deprecated 过时方法
@Override 标注在重写的方法上,检查该方法是方法是否是重写的方法
@Suppress
Warnings 取消编译器的警告
框架开发,框架升级
安全性得不到保障
常规情况下:一个类的执行过程:是从源文件开始,经过编译,然后加入类加载器当中,然后在执行该程序,属于是预加载,然后在执行。
反射是,程序已经在执行了,在执行过程当中,获取类,类的方法属性等等,然后在组织到当前类的加载器当中,然后动态执行。
Object用于描述对象的类
1、用户描述类的对象 通过类名获取Class类,会有一个异常,类名不能定位到类,一般是在配置文件当中获取的字符串;
2、通过对象来获取Class类,一般使用在传参的时候,或者参数数据类型不定的时候使用;
3、通过类来获取Class类,一般用于明确类型的参数传递;
4、使用new instance的方法创建的实例,默认实际上是调用的目标类的空参构造;
5、访问不可见成员时,需要指定访问权限。
用于描述属性
Method用于描述方法
用于描述构造