java 中的 Annotation 注解

  • 什么是注解
  • 元注解
    • @Target
    • @Retention
    • @Document
    • @Inherited
  • 自定义注解

什么是注解

  • Annotation 是从JDK5.0 开始引入的新技术
  • 作用1: 可以被程序读取,列如@Value 通过反射使用该注解读取配置文件信息
  • 作用2: 本身不是程序,和注释差不多. 如: @Override, @Deprecated 内置注解
  • Annotation 格式以 @注解命名成 在代码中存在,还可以添加一些参数,如: @RequestMapping(value = “/add”, method = RequestMethod.POST)
  • Annotation 可以附加在 package, class, method,field 等上面,相当于给他们添加了额外的辅助信息,可以通过反射对这些元数据的访问

元注解

  • 元注解的作用就是负责解释注解其他注解,java中定义了4个标准的meta-annotation 类型,他们被用来提供对其他annotation类型说明

  • 这些类型的注解和他们所支持的类型都在java.lang.annotation 包中可以找到

  • @Target

  • 用于描述注解的使用范围 (被描述的注解可以用在什么地方)

  • @Target(ElementType.TYPE) 接口、类、枚举、注解

  • @Target(ElementType.FIELD) 字段、枚举的常量

  • @Target(ElementType.METHOD)方法

  • @Target(ElementType.PARAMETER)方法参数

  • @Target(ElementType.CONSTRUCTOR)构造函数

  • @Target(ElementType.LOCAL_VARIABLE)局部变量

  • @Target(ElementType.ANNOTATION_TYPE)注解

  • @Target(ElementType.PACKAGE)包

  • @Retention

  • 表示需要在什么级别保存注解信息,用于描述注解的声明周期

  • RetentionPolicy.SOURCE:这种类型的Annotation只在源代码级别保留,编译时就会被忽略,在class字节码文件中不包含

  • RetentionPolicy.CLASS:这种类型的Annotation编译时被保留,默认的保留策略,在class文件中存在,但JVM将会忽略,运行时无法获得

  • RetentionPolicy.RUNTIME:这种类型的Annotation将被JVM保留,所以他们能在运行时被JVM或其他使用反射机制的代码所读取和使用

  • @Document

  • 说明该注解将被包含在javadoc中

  • @Inherited

  • 说明子类可以继承父类中的注解

自定义注解

  • 使用 @interface 自定义注解时候, 自动继承了 java.lang.annotation,Annotation 接口
  • @interface 声明一个注解的格式: public @interface 注解名称 {定义内容}

java 中的 Annotation 注解学习笔记相关推荐

  1. 浅析java中的死锁_Java学习笔记五十五(死锁问题)

    多线程死锁问题. 我们知道,多线程可以改善系统的资源利用率,并且可以提高程序的运行效率.但是,多线程也带来了新的问题,即:死锁问题. 1.死锁的概念 死锁可以理解为多个线程为了争夺同一个资源,而出现互 ...

  2. Java中如何创建自定义的注解学习笔记(MD版)

    概要 Java中如何创建自定义的注解学习笔记(MD版). 博客 博客地址:IT老兵驿站. 前言 记得这篇笔记还是在泉州的龙玲酒店记录的,是一个周六的晚上,坐飞机从上海到泉州,从笔记中能勾起一些旅游的回 ...

  3. java自定义注解学习笔记

    注解学习笔记之自定义注解 @Target({1,2,3,4,5,6,7}) 1.ElementType.CONSTRUCTOR:用于描述构造器 2.ElementType.FIELD:用于描述域 3. ...

  4. java scheduled_怎么在java中利用@Scheduled注解执行定时任务

    怎么在java中利用@Scheduled注解执行定时任务 发布时间:2021-01-13 16:52:56 来源:亿速云 阅读:84 作者:Leah 本篇文章给大家分享的是有关怎么在java中利用@S ...

  5. Java程序猿的JavaScript学习笔记(12——jQuery-扩展选择器)

    计划按例如以下顺序完毕这篇笔记: Java程序猿的JavaScript学习笔记(1--理念) Java程序猿的JavaScript学习笔记(2--属性复制和继承) Java程序猿的JavaScript ...

  6. 《Java并发编程实践》学习笔记之一:基础知识

    <Java并发编程实践>学习笔记之一:基础知识 1.程序与进程 1.1 程序与进程的概念 (1)程序:一组有序的静态指令,是一种静态概念:  (2)进程:是一种活动,它是由一个动作序列组成 ...

  7. 拉勾网《32个Java面试必考点》学习笔记之二------操作系统与网络知识

    本文为拉勾网<32个Java面试必考点>学习笔记.只是对视频内容进行简单整理,详细内容还请自行观看视频<32个Java面试必考点>.若本文侵犯了相关所有者的权益,请联系:txz ...

  8. Java开发面试高频考点学习笔记(每日更新)

    Java开发面试高频考点学习笔记(每日更新) 1.深拷贝和浅拷贝 2.接口和抽象类的区别 3.java的内存是怎么分配的 4.java中的泛型是什么?类型擦除是什么? 5.Java中的反射是什么 6. ...

  9. Java web与web gis学习笔记(二)——百度地图API调用

    系列链接: Java web与web gis学习笔记(一)--Tomcat环境搭建 Java web与web gis学习笔记(二)--百度地图API调用 JavaWeb和WebGIS学习笔记(三)-- ...

最新文章

  1. MySQL基础篇:位、字节和字符的关系
  2. Codeforces 494D Upgrading Array
  3. PHP路径realpath __FILE__ __DIR__ dirname
  4. jQuery Mobile Data 属性
  5. mysql判断域为空_MySQL EXPLAIN 字段说明
  6. ListView删除选中的多项目
  7. java asm methodvisitor 定义局部变量_Java ASM3学习(3)
  8. NOIP 2014 解方程
  9. vs2017安装qt
  10. suitecrm 如何backup and restore ,从一个server 转移到另一个 server . 并保证customer package , customer module 不丢...
  11. matlab 非支配排序,NSGA-II快速非支配排序算法理解
  12. 头歌--Java面向对象 - String类
  13. 《东周列国志》第四十四回 叔詹据鼎抗晋侯 弦高假命犒秦军
  14. 4、Mac下的谷歌浏览器输入不安全网址点高级后没有继续前往链接解决办法
  15. RGB转HSI的代码优化
  16. win8激活时出现”错误代码:0×8007007B 错误描述:文件名、目录名或卷标语法不正确“解决方法
  17. 柳 to 杨 (转)
  18. 【PyTorch】Optim 优化器
  19. 6代cpu装win7
  20. BUUCTF【ez_pz_hackover_2016】

热门文章

  1. 运行时常量池在哪里_Java虚拟机详解(二)------运行时内存结构
  2. 用指针查找数组中温度值为32的天数
  3. java与servlet JSP_java面试精品全集[jsp与servlet部分]
  4. phpexcel_cell 获取表格样式_Java 操作Word表格——创建嵌套表格、添加/复制表格行或列、设置表格是否禁止跨页断行...
  5. tp5权限管理代码_权限系统控制到按钮级别开源推荐 Spring BootShiroVue
  6. Mac OS X如何进行字体管理
  7. 沃尔玛开设智慧零售实验室,正面硬刚 Amazon Go
  8. 勒索攻击猖獗,在云上如何应对这位“破坏分子”?
  9. 架构之美(china-pub全国独家首发)
  10. 不学无数——SpringBoot入门Ⅱ