不影响程序逻辑,可以被编译或运行,相当于嵌入代码的补充信息
一、Annotation:
注解类形式:
public @interface Override{ }
//这里的@interface不是接口,而是注解类的标志
(1)@Override:用于限定方法是重写父类的方法(不一定是直接父类),只能用于方法,不写该注解也算重写,加上该注解的主要目的是让编译器去检查该方法是否是重写了,如果没有实现重写,就会编译不通过
(2)@Deprecated:用于表示某个程序元素已过时
(3)@SupressWarnings:抑制编译器警告,其后{“参数1”,"参数2",,},这里的参数保存在注解类的 String[] value中,该注解的作用范围和其放置位置相关,如果参数是“all”,并且放在方法外,则该方法的所有警告就会被抑制
二、JDK的元注解(注解的注解)
(1)@Target:指定注解可以在哪些地方使用:方法、类、成员。。。
(2)@Retention:指定注解的作用时间范围:SOURCE(编译器检查), CLASS(编译器把注解保留在class文件中,当运行时,JVM不会保留注解) , RUNTIME(运行时jvm会保留注解,程序通过反射获取该注解)
(3)@Documented:被加上该注解的注解在形成javadoc文档时会被保留
(4)@Inherited:如果某个类使用了被该注解修饰的注解,则其子类将自动继承该注解