1.什么是注解?注解有什么作用?
注解Annotation是一种引用数据类型,编译之后生成xxx.Class文件
作用:制定编码规则
2.定义注解的语法格式
[修饰符列表] @interface注解类型名{}
注解在任何地方都可以使用
3.java.lang包下的注解
(1)@Deprecated:表示已过时的
(2)@override:表示一个方法声明打算重写超类的方法声明
@override注解是标识性注解,只能注解方法,这个注解是给编译器参考的,和运行阶段没有关系,java方法中凡是带有这个注解的,编译器会自动进行检查该方法是否重写了父类的方法,如果这个方法没有重写父类的方法,则编译器报错
(3)@SupressWarning:抑制编译器警告
4.为什么@override注解不能修饰类?
看源码可以知道:@Targe(ElementType.METHOD),@override被@Targe修饰,使得@override只能运用在方法上
@Retention(RetentionPolicy.SOURCE):该注解只保留在java源文件中
@Retention(RetentionPolicy.CLASS):该注解被保留在class文件中
@Retention(RetentionPolicy.SOURCE):该注解被保留在class文件中,并且可以被反射机制读取
注意:
(1)用来标注注解的注解被称为元注解(@Targe)
(2)如果一个注解之中有属性,那么必须给属性赋值,除非该属性用了default指定了默认值
(3)如果一个注解的属性名是value,并且只有一个属性的话,那么在赋值的时候这个注解的属性名可以省略
5.常见的元注解有哪些
@Target
@Retention
6.注解中的属性可以是哪几种类型?
int short long double float char byte boolean String Class 枚举
以及以上类型的所有数组形式