Java注解基础概念总结

股票分时数据获取-东方财富 获取下股票分时数据,分时均价下线,分时成交额等,用于量化t0交易条件还是很不错了的。 阅读详情

注解的概念

注解(Annotation),也叫元数据(Metadata),是Java5的新特性,JDK5引入了Metadata很容易的就能够调用Annotations。注解与类、接口、枚举在同一个层次,并可以应用于包、类型、构造方法、方法、成员变量、参数、本地变量的声明中,用来对这些元素进行说明注释。

注解的语法与定义形式

(1)以@interface关键字定义
(2)注解包含成员,成员以无参数的方法的形式被声明。其方法名和返回值定义了该成员的名字和类型。
(3)成员赋值是通过@Annotation(name=value)的形式。
(4)注解需要标明注解的生命周期,注解的修饰目标等信息,这些信息是通过元注解实现。

以 java.lang.annotation 中定义的 Target 注解来说明:

@Retention(value = RetentionPolicy.RUNTIME)
@Target(value = { ElementType.ANNOTATION_TYPE } )
public @interface Target {
    ElementType[] value();
}

源码分析如下:
第一:元注解@Retention,成员value的值为RetentionPolicy.RUNTIME。
第二:元注解@Target,成员value是个数组,用{}形式赋值,值为ElementType.ANNOTATION_TYPE
第三:成员名称为value,类型为ElementType[]
另外,需要注意一下,如果成员名称是value,在赋值过程中可以简写。如果成员类型为数组,但是只赋值一个元素,则也可以简写。如上面的简写形式为:

@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.ANNOTATION_TYPE)
public @interface Target {
    ElementType[] value();
}

注解的分类

注解的分类有两种分法:

第一种分法

1、基本内置注解,是指Java自带的几个Annotation,如@Override、Deprecated、@SuppressWarnings等;

2、元注解(meta-annotation),是指负责注解其他注解的注解,JDK 1.5及以后版本定义了4个标准的元注解类型,如下:

  • @Target
  • @Retention
  • @Documented
  • @Inherited

3、自定义注解,根据需要可以自定义注解,自定义注解需要用到上面的meta-annotation

第二种分法

注解需要标明注解的生命周期,这些信息是通过元注解 @Retention 实现,注解的值是 enum 类型的 RetentionPolicy,包括以下几种情况:

public enum RetentionPolicy {
    /**
     * 注解只保留在源文件,当Java文件编译成class文件的时候,注解被遗弃.
     * 这意味着:Annotation仅存在于编译器处理期间,编译器处理完之后,该Annotation就没用了
     */
    SOURCE,

    /**
     * 注解被保留到class文件,但jvm加载class文件时候被遗弃,这是默认的生命周期.
     */
    CLASS,

    /**
     * 注解不仅被保存到class文件中,jvm加载class文件之后,仍然存在,
     * 保存到class对象中,可以通过反射来获取
     */
    RUNTIME
}

元注解

如上所介绍的Java定义了4个标准的元注解:

@Documented:标记注解,用于描述其它类型的注解应该被作为被标注的程序成员的公共API,因此可以被例如javadoc此类的工具文档化。

@Documented
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.ANNOTATION_TYPE)
public @interface Documented {
}

@Inherited:标记注解,允许子类继承父类的注解

@Documented
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.ANNOTATION_TYPE)
public @interface Inherited {
}

@Retention:指Annotation被保留的时间长短,标明注解的生命周期,3种RetentionPolicy取值含义上面以说明

@Documented
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.ANNOTATION_TYPE)
public @interface Retention {
    RetentionPolicy value();
}

@Target:标明注解的修饰目标,共有

@Documented
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.ANNOTATION_TYPE)
public @interface Target {
    ElementType[] value();
}

// ElementType取值
public enum ElementType {
    /** 类、接口(包括注解类型)或枚举 */
    TYPE,
    /** field属性,也包括enum常量使用的注解 */
    FIELD,
    /** 方法 */
    METHOD,
    /** 参数 */
    PARAMETER,
    /** 构造函数 */
    CONSTRUCTOR,
    /** 局部变量 */
    LOCAL_VARIABLE,
    /** 注解上使用的元注解 */
    ANNOTATION_TYPE,
    /** 包 */
    PACKAGE
}


参考文章:

反射、注解与依赖注入总结

注解系列知识总结(一)

GEE 案例:基于陆地卫星8号(大气层顶反射率数据)LANDSAT/LC08/C02/T1_TOA的生态遥感指数RSEI计算、可视化和下载 摘要:基于GEE的遥感生态指数(RSEI)计算方法 本文介绍了利用Google Earth Engine(GEE)平台计算遥感生态指数(RSEI)的全流程方法。主要内容包括:研究区域定义、Landsat8数据获取与去云预处理、关键生态指标计算(地表温度LST、植被指数NDVI、湿度指数WET和建筑指数NDBSI)、主成分分析(PCA)降维处理,以及结果可视化与数据导出。通过结合多源遥感指标并采用归一化处理,构建了综合反映区域生态环境质量的RSEI指数。该方法为生态环境监测提供了高效的技术方案,所有计算过程均 阅读详情

相关推荐

基于多物理参数数据融合和先进人工智能算法的锂电池热失控监测传感器

基于多物理参数数据融合和先进人工智能算法的锂电池热失控监测传感器是多种方案中的优选项!是一种快速、准确、可靠、应用广泛的传感方案!可有效监测锂离子电池热失控风险,保障化学能储能电站安全!

chicheng_danxin的博客 2412

java基础概念

基本概念 学习java的基础知识首先清楚下面四个概念: 对象:对象就是类的实例,包含状态和行为 类:描述一类对象有的行为和状态 方法:方法还就是行为,一个类包含很多方法 实例变量:每个对象都会有独特的实例变量,对象的状态有这些实例对象的值决定,比如传入的参数 编写 Java 程序时,应注意以下几点: 大小写敏感:Java 是大小写敏感的 类名:类名的首字母应该大写,如果类名由若干单词组成,那么每个单词的首字母应该大写,例如 MyFirstJavaClass 方法名:所有的方法名都应该以小写字母开头。如果方

csdn_1_10086的博客 2369

逐飞vs龙邱:英飞凌miniwiggler仿真器硬件接口差异全解析(附拆机对比图)

本文通过拆解对比逐飞与龙邱两家厂商的英飞凌miniwiggler仿真器,详细解析了其硬件接口的核心差异。重点分析了Type-C接口的取舍、DAP调试协议(SWD)的支持、电源设计(跳线帽vs拨码开关)以及工艺用料,为嵌入式开发者与智能车竞赛选手提供了清晰的选型参考和实际应用建议。

weixin_29189003的博客 113

Java简明教程-基本语法上

基本语法上认识java变量常量数据类型String计算字符串长度字符串比较字符串连接字符串常用提取方法 认识java JVM 叫 Java 虚拟机,它也是整个 Java 技术的核心。Java 语言的跨平台就多亏了 JVM。 JDK 叫 Java 开发工具包,没有 JDK 就没有办法进行 Java 程序的开发。 JRE 叫 Java 运行环境,如果我们需要运行一个 Java 程序,就得安装 JRE。 JDK、JRE 和 JVM 之间的关系: 变量 在 Java 中,变量需要先声明 (declare) 才能

weixin_41603934的博客 1295

Aruba CX交换机VSX配置实战:如何避免脑裂导致的网络中断(含详细命令)

本文提供Aruba CX交换机VSX配置的实战指南,重点讲解如何通过构建高可靠的ISL链路聚合与独立隔离的Keepalive链路,有效避免网络脑裂风险。文章包含详细的命令步骤,从基础配置到高级故障排查,帮助网络工程师构建坚如磐石的高可用核心网络,确保业务流量零中断。

weixin_29231725的博客 170

Vivado 18.3安装全攻略:从下载到配置的完整指南

本文详细介绍了Vivado 18.3的安装全流程,从下载准备到配置优化,特别适合FPGA开发者。文章包含硬件要求、版本选择、组件配置等实用技巧,帮助用户避免常见安装问题,确保稳定运行。重点解析了License配置和系统优化设置,提升开发效率。

weixin_28331555的博客 567

Java基础知识点总结

Java基础知识点总结

是阿超 7340

Win10系统内存占用异常飙升?三步排查法快速定位问题根源

本文针对Win10系统内存占用异常飙升问题,提供了一套三步排查法。首先利用任务管理器和资源监视器进行深度系统体检,定位隐形内存消耗者;其次通过干净启动和禁用非必要后台服务,揪出导致内存泄漏的第三方软件或驱动;最后进行终极深度清理,包括检查内存完整性、调整虚拟内存设置以及更新关键驱动程序,帮助用户快速恢复系统流畅运行。

weixin_29251567的博客 195

Java基础知识总结(超详细整理)

Java语言的特点,1.面向对象(OOP)就是Java语言的基础,也是Java语言的重要特性。面向对象的概念:生活中的一切事物都可以被称之为对象,生活中随处可见的事物就是一个对象,我们可以将这些事物的状态特征(属性)以及行为特征(方法)提取并出来,并以固定的形式表示。 2.简单好用,Java语言是由C和C++演变而来的,它省略了C语言中所有的难以理解、容易混淆的特性(比如指针),变得更加严谨、简洁、易使用。 3.健壮性、Java的安全检查机制,将许多程序中的错误扼杀在摇蓝之中。 另外,在

龙源IT 的博客 44万+

Claude Code教程(二) | Claude Code 核心信息与使用指南

Claude Code 核心信息与使用指南

qq_20236937的博客 2183

SKUA-GOCAD入门教程-第七节 点的创建与编辑3

本文介绍了四种从井数据创建点集的方法

江洋大葱的博客 963

Java注解究竟是如何起作用的及注解的基本概念

注解是如何实现的 ps:由于时间有限来不及看太详细,所以只写个大概,后面有机会会进行详细补全。 疑问的起点 以前在写代码的时候就看过一些注解的源码,每次点进去看的时候发现都只有简简单单几行代码,但是为什么就可以实现一些非常复杂的功能呢?哪个时候还不太在意,今天在写代码的时候,看到了@Slf4j的注解,突然想看看它的源码是什么,然后点进去一看 // // Source code recreated from a .class file by IntelliJ IDEA // (powered by F

elapse_的博客 1849

Pulseaudio之同步/异步(十一)

PulseAudio是一个声音服务器,一个后台进程从一个或多个音源(进程或输入设备)接受声音输入 然后重定向声音到一个或多个槽(声卡,远程网络PulseAudio服务,或其他进程)。 PulseAudio的主要特点包括: 可对每一个应用程序进行音量控制Per-application volume controls 可扩展的插件与支持可装载模块架构 兼容性许多流行的音频应用程序 支持多重音源和多重输出 低延时操作和支持延迟测量 一个对处理器资源效率零拷贝内存架构 能够发现本地网络上使用PulseAu

Android系统攻城狮 996

java 注解object_Java注解基础概念总结

注解的概念注解(Annotation),也叫元数据(Metadata),是Java5的新特性,JDK5引入了Metadata很容易的就能够调用Annotations。注解与类、接口、枚举在同一个层次,并可以应用于包、类型、构造方法、方法、成员变量、参数、本地变量的声明中,用来对这些元素进行说明注释。注解的语法与定义形式(1)以@interface关键字定义(2)注解包含成员,成员以无参数的方法的形...

weixin_42315866的博客 483

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

Java注解基础概念

原文:https://blog.youkuaiyun.com/github_35180164/article/details/52107204 注解的概念 注解(Annotation),也叫元数据(Metadata),是Java5的新特性,JDK5引入了Metadata很容易的就能够调用Annotations。注解与类、接口、枚举在同一个层次,并可以应用于包、类型、构造方法、方法、成员变量、参数、本地变量的声...

weixin_39590058的博客 181

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

Java注解详解:从概念到实践

本文系统阐述了Java注解的核心概念、作用机制及类型系统。通过典型示例展示了注解的编译时验证能力(如@Override)、结构化文档功能,以及在现代框架中的关键作用。重点分析了注解的声明规范、标准分类(元注解与功能注解)及其在编译器指令、代码生成、测试框架等场景的应用价值。文章对比了注解与传统注释的差异,并深入探讨了注解如何实现元编程、扩展类型系统,以及支撑"约定优于配置"的开发范式。注解作为Java生态的重要构建块,在保持代码简洁性的同时提供了强大的元数据处理能力。

静水深流 812

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

java注解概念

一、注解概念 (1)JDK5及其以后JDK版本开始支持Java注解; (2)Java注解(Annotation)也叫作元数据,以‘@注解名’在代码中存在,它是一种在源代码中标注的特殊标记,可以标注源代码中的类、属性、方法、参数等代码,主要用于创建文档,跟踪代码中的依赖性,甚至执行基本编译时检查。 二、注解的分类 Java注解按照是否含有参数分为三种: (1)不带参数 语法结构为: @Annotation (2)带一个参数的注解 语法结构为: @Annotation(参数) (3

m0_46383618的博客 253

java注解格式及概念

一.注解概述及常用注解 概念:注解可以理解为一种使用相关信息来绑定Java文件元素的方式 常用的注解:共有四个 1.@Override方法重写的检查,所有的类都是继承Object类,toString重写 重写检查不正确时出现红色波浪线,长用于接口方法的重写* 2.@Deprecated标注已过时的方法,Date类中许多过时的方法都有横线标注 可查看Api文档得知过时的方法上面有@Deprecat...

c3476741954的博客 720

java的注解是什么_java注解的概念理解

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

weixin_39521835的博客 406

一张图了解Java注解概念框架

以下是根据官方教程文档总结的Java注解概念思维框图: 带着框架来学习实践,让知识烙印在脑海中!

潇洒小燕青的专栏 428

java基础概念67-注解annotation

注解的作用,格式;内置注解;注解的生命周期;元注解;常用注解;自定义注解;注解的用处:反射、类的加载过程,类的初始化,类加载器,使用反射动态加载对象;通过反射获取泛型,注解

qq_31532983的博客 856

Java注解和反射的基础概念

注解和反射 注解 什么是注解: Annotation是从JDK5.0开始引入的新技术 Annotation的作用: 不是程序本身,可以对程序作出解释(这一点和注释(comment)没有什么区别) 可以被其他程序(比如:编译器等)读取 Annotation的格式: 注解是以“@注释名”在代码中存在的,还可以添加一些参数值: 例如@SuppressWarnings(value=“unchecked”) Annotation在哪里使用? 可以附加在package、class、meth

qq_37328448的博客 245

Java——注解的概念及应用

注解 注解的定义:注解(Annotation),也叫元数据。一种代码级别的说明。它是JDK1.5及以后版本引入的一个特性,与类、接口、枚举是在同一个层次。它可以声明在包、类、字段、方法、局部变量、方法参数等的前面,用来对这些元素进行说明,注释。注解不是程序的一部分,可以理解为注解就是一个标签。 注解通常使用 @注解名称 的形式来表示注解 作用分类: 编写文档:通过代码里标识的注解生成文档【生成文档doc文档】 代码分析:通过代码里标识的注解对代码进行分析【使用反射】 编译检查:通过代码里标识的注解让编

Tomas_yue的博客 214

快速理解Java中注解的概念

通过通俗的方式解释注解 首先来看一段书本中的严谨解释: 注解也叫元数据,注解其实就是代码中的特殊标记,这些标记可以在编译、类加载、运行时被读取,并执行相对应的处理。 使用注解的优势:1,让编译器进行编译检查。2 在反射中进行使用。3,形成帮助文档(javadoc)。4,帮助理解代码(类似于注释)。5,用于简化程序中的配置。 注解的类型有很多,在SSH框架中,其主要作用是定义元素初始值,弥补XML文件所带来的的不稳定性。 以上内容很严谨,很专业,很不好理解,很没用。所以我们等稍微理解了以后再看。 引 开始

weixin_43227523的博客 482
上一篇: Java注解处理器使用详解
下一篇: 自定义注解之运行时注解(RetentionPolicy.RUNTIME)
Rukey7
博客等级 码龄10年 184粉丝 23原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值