1、
什么是注解?
提供了一种安全的类似注释机制,它其实是对代码的一种注释,用来对任何的信息和元数据进行关联,它为程序的元素(类、方法、成员变量)加上更加直观明了的说明,这些注释是和程序开发的业务逻辑没有关系的,同时也提供了指定的工具和框架来进行注解的使用。
2、
3、
①override:复写
②deprecatd:过时
③suppresswarnnings:抑制编译器警告,通常用于抑制link
4、
①target:说明的是注解所修饰的对象范围,注解可以用于类、方法、成员变量等,用target更加明晰了注解可以被作用的目标
ElementType.Type:说明作用的是类、接口、枚举等
ElementType.FILD:说明作用的是成员变量
②retention:定义了这个注解保留的时间的长短
RetentionPolicy.RUNTIME:在运行时有效,这样就可以通过反射获取到该注解的值
RetentionPolicy.SOURCE:在源文件中有效
RetentionPolicy.CLASS:表面在class中有效
③documented:标明是API
④inherited:某个被标识的类型是可以被继承的
5、
①表明参数和返回值是不能为空的
返回值可以为空
②说明参数需要的类型
③指定方法要执行在子线程,如果不是编译器会警告
如果不是运行在主线程,编译器会警告
④
如果复写了父类的方法,并且需要调用父类的方法,就可以使用这个注解
6、注解是如何被处理的?
当java源代码编译的时候,有一个插件来处理这些注解。如果代码添加了注解,就会将注解的元数据储存到.class文件中,然后虚拟机就可以查找相应的元数据并做相应的处理。也可以通过反射来处理注解。