1. 注解(标注)概念:从字面意思理解是对被标注的对象(类,接口,枚举,注解类,方法,参数)的一个标记,有这个标记有什么用呢?就像学习中“划重点”的方式一样,被标记的对象肯定是特殊需要特别关照的对象,在使用时能快速找到的对象,这就是注解的意思。如果还是有点懵,那就只需要记住,凡是被标注的对象都是特殊的。

例子1:就像建筑工地的楼一样,在一片地方正在建造的楼有很多,但其中每楼每户都是被标注过的,标注他们的注解是:单元号、门牌号,所以以后通过单元号、门牌号就能轻易找到它们。

例子2:世界上有很多人,而每个人都有自己的名字,而名字就是这个人的注解,因为通过这个名字就可以找到这个人。

-注解标注的对象有时是具体的如例子1,例子2. 也可以是一类的:

例子3:人大概可以分为三种肤色(注解/标注):白种人,黄种人,黑种人,所以通过各自的肤色(注解/标注)就可以找到对应的这一类人。

2.注解的用途:这个问题要配合元注解说明:元注解:用来标注注解的注解,用来配置这个注解的基本属性:@Target(ElementType...)此注解的标注范围,用在哪里(类,接口,枚举,注解类,方法,参数),   @Retention(RetentionPolicy...)此注解什么时候有效。

  -元注解 有效期配置:@Retention(RetentionPolicy.SOURCE):注解将被编译器丢弃(该类型的注解信息只会保留在源码里,源码经过编译后,注解信息会被丢弃,不会保留在编译好的class文件里

    使用场景:用来让读源码的人看的(个人猜想),其他作用还没发现

  -元注解  有效期配置:@Retention(RetentionPolicy.CLASS):注解在class文件中可用,但会被VM丢弃(该类型的注解信息会保留在源码里和class文件里,在执行的时候,不会加载到虚拟机中),请注意,当注解未定义Retention值时,默认值是CLASS,如Java内置注解,@Override,@Deprecated、@SuppressWarnning等

    使用场景:编译器使用的

  -元注解  有效期配置:@Retention(RetentionPolicy.RUNTIME):注解信息将在运行期(JVM)也保留,因此可以通过反射机制读取注解的信息(源码、class文件和执行的时候都有注解的信息),如SpringMvc中的@Controller、@Autowired、@RequestMapping等。  

    使用场景:通过java反射机制获取到此注解中的参数内容,或此注解标注过的对象,用于做不同的业务处理。

最新文章

  1. Spring bean 实现初始化、销毁方法的方式及顺序
  2. ACM/ICPC 之 DP进阶(51Nod-1371(填数字))
  3. oracle 创建修改 job
  4. Asp.Net连接Mysql报错Out of sync with server
  5. 编写Qt Designer自定义控件(二)——编写自定义控件界面
  6. iis7.5 应用程序池 经典模式和集成模式的区别
  7. 第一个程序点亮一个LED灯
  8. Ubuntu 系统 文件操作命令
  9. HTML5简单入门系列(八)
  10. VC++ WIN32 sdk实现按钮自绘详解.
  11. HDU 3948 不同回文子串个数
  12. 《Java课程设计》
  13. 发放春节福利,ASP.NET Core断点续传
  14. git撤销commit 并保存之前的修改
  15. ASPxGridView 用法
  16. CodeForces 407C 组合数学(详解)
  17. java-Redis集合
  18. git 第一次提交代码
  19. netty(六) websocket开发应用
  20. variable 'QJsonArray array' has initializer but incomplete type

热门文章

  1. redis实现消息队列&发布/订阅模式使用
  2. SpringMVC的JSON数据交互(七)-@Response,@RestController,@RequestBody用法
  3. 教你如何使用android studio发布release 版本【转】
  4. freeRTOS中文实用教程6--错误排查
  5. 出现“error LNK1169: 找到一个或多个多重定义的符号”的原因
  6. nginx访问报错403 is forbidden
  7. Ex 6_19 至多用k枚硬币兑换价格_第七次作业
  8. 使用RMS API 自定义Office(Word、Excel、PPT)加密策略
  9. 类(字符串型;日期时间型;Math)
  10. Android9.0新特性曝光,你准备好了吗