当前位置: 首页 > news >正文

java注解的概念理解

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反射机制获取到此注解中的参数内容,或此注解标注过的对象,用于做不同的业务处理。

转载于:https://www.cnblogs.com/li-yan-long/p/10454995.html

相关文章:

  • 详解NodeJs流之一
  • 智能驾驶正文 0 戴姆勒与宝马抱团开发自动驾驶 新旧车企大战在即
  • 数据建模的三种分类(来自Enterprise Architect的文档)
  • Docker镜像提交命令commit的工作原理和使用方法
  • linux 计划任务
  • Ant Design 3.14.1 发布,企业级的 UI 设计语言
  • mpvue小程序开发中配置less支持
  • Android Intent传递对象为什么要序列化?
  • Vue源码解读
  • TableStore: 海量结构化数据分层存储方案
  • GitHub Draft Pull请求支持新的协作流程
  • 常用技巧
  • 原生js实现倒计时页面刷新不重新加载
  • word快捷键
  • 干货驾到:Redis5.0支持的新功能说明
  • [js高手之路]搞清楚面向对象,必须要理解对象在创建过程中的内存表示
  • 【每日笔记】【Go学习笔记】2019-01-10 codis proxy处理流程
  • Android路由框架AnnoRouter:使用Java接口来定义路由跳转
  • angular2开源库收集
  • codis proxy处理流程
  • JS正则表达式精简教程(JavaScript RegExp 对象)
  • python docx文档转html页面
  • SpingCloudBus整合RabbitMQ
  • Web标准制定过程
  • 构建工具 - 收藏集 - 掘金
  • 官方解决所有 npm 全局安装权限问题
  • 山寨一个 Promise
  • 数据结构java版之冒泡排序及优化
  • 在 Chrome DevTools 中调试 JavaScript 入门
  • Salesforce和SAP Netweaver里数据库表的元数据设计
  • 专访Pony.ai 楼天城:自动驾驶已经走过了“从0到1”,“规模”是行业的分水岭| 自动驾驶这十年 ...
  • ​DB-Engines 11月数据库排名:PostgreSQL坐稳同期涨幅榜冠军宝座
  • ​猴子吃桃问题:每天都吃了前一天剩下的一半多一个。
  • $(document).ready(function(){}), $().ready(function(){})和$(function(){})三者区别
  • $var=htmlencode(“‘);alert(‘2“); 的个人理解
  • (06)金属布线——为半导体注入生命的连接
  • (C语言)fread与fwrite详解
  • (带教程)商业版SEO关键词按天计费系统:关键词排名优化、代理服务、手机自适应及搭建教程
  • (第27天)Oracle 数据泵转换分区表
  • (附源码)计算机毕业设计SSM基于健身房管理系统
  • (顺序)容器的好伴侣 --- 容器适配器
  • (一)插入排序
  • (转)母版页和相对路径
  • * 论文笔记 【Wide Deep Learning for Recommender Systems】
  • .NET 3.0 Framework已经被添加到WindowUpdate
  • .NET Core 通过 Ef Core 操作 Mysql
  • .NET Micro Framework初体验
  • .Net MVC + EF搭建学生管理系统
  • .NET 回调、接口回调、 委托
  • .NET性能优化(文摘)
  • @Mapper作用
  • [AutoSar]BSW_Memory_Stack_003 NVM与APP的显式和隐式同步
  • [BZOJ 3282] Tree 【LCT】
  • [C++] sqlite3_get_table 的使用
  • [CUDA手搓]从零开始用C++ CUDA搭建一个卷积神经网络(LeNet),了解神经网络各个层背后算法原理