【Java学习笔记】注解

Java 学习笔记:注解、泛型与 IO 流 本文系统讲解了Java三大核心技术:注解、泛型和IO流。第一部分介绍注解的概念、自定义方法及内置注解的使用;第二部分详细解析泛型语法、通配符与上下限规则,以及常见应用场景;第三部分讲解IO流的分类(字节流/字符流)、文件操作及经典示例。文章最后提出三个思考题,涉及注解与反射的依赖注入实现、泛型擦除原理及NIO优势分析。全文涵盖基础语法到实际应用,适合Java开发者系统学习这些核心特性。 阅读详情

注解(Annotation)

引入修饰符:@

一、. 基本介绍

  • (1)注解(Annotation)也被称为元数据(Metadata),用于修饰解释 包、类、方法、属性、构造器、局部变量等数据信息

  • (2) 和注释一样,注解不影响程序逻辑,但注解可以被编译或运行,相当于嵌入在代码中的补充信息。

  • (3)元注解:注解的注解

二、 分类

  • 1. 基本注解

    • (1)@Override:限定某个方法,是重写父类方法,该注解只能用于方法

    • (2)@Deprecated:用于表示某个程序元素(类、方法等)已过时

    • (3)@SuppressWarnings:抑制编译器警告

  • 2. 元注解(了解即可,帮助我们看懂源代码)

    • (1)Retention:指定注解的作用范围

      • RetentionPolicy.SOURCE:编译器使用后,直接丢弃这种策略的注释

      • RetentionPolicy.CLASS:编译器将把注解记录在 class 文件中. 当运行 Java 程序时,JVM 不会保留注解。这是默认值

      • RetentionPolicy.RUNTIME::编译器将把注解记录在 class 文件中. 当运行 Java 程序时,JVM 会保留注解. 程序可以通过反射获取该注解

    • (2)Target:指定注解可以在哪些地方使用

    • (3)Documented:指定该注解是否会在 javadoc 体现

    • (4)Inherited:子类会继承父类注解


基本注解

一、@Override

  • (1)@Override 表示指定重写父类的方法(从编译层面验证),如果父类没有 fly 方法,则会报错

  • (2)如果不写@Override 注解,而父类有和子类相同的方法,仍然构成重写

  • (3)@Override 只能修饰方法,不能修饰其他类、包、属性等等

实际应用:判断某个方法是否重写了父类的方法,若在方法上方添加@Override 注解不报错,则重写

@Override 的源码

@Target(ElementType.METHOD)
@Retention(RetentionPolicy.SOURCE)
public @interface Override {
}

二、@Deprecated

  • (1)用于表示某个程序元素(类、方法等)已过时

  • (2)可以修饰方法、类、字段、包、参数等等

  • (3)@Target(value={CONSTRUCTOR, FIELD, LOCAL_VARIABLE, METHOD, PACKAGE, PARAMETER, TYPE})

  • (4)@Deprecated 的作用可以做到新旧版本的兼容和过渡

@Deprecated 的源码

@Documented
@Retention(RetentionPolicy.RUNTIME)
@Target(value={CONSTRUCTOR, FIELD, LOCAL_VARIABLE, METHOD, PACKAGE, PARAMETER, TYPE})
public @interface Deprecated {
}

三、@SuppressWarnings

1. 介绍:这个注解的作用是忽略一些警告的

使用方法:@SuppressWarnings(“传入一个类型”)

2. 技巧:生成 @SuppressWarnings 时,不用背,直接点击左侧的黄色提示,就可以选择(注意可以指定生成的位置)

3. 所有类型一览表

属性说明
all抑制所有警告
boxing抑制与封装/拆装作业相关的警告
cast抑制与强制转型作业相关的警告
dep-ann抑制与淘汰注释相关的警告
deprecation抑制与淘汰的相关警告
fallthrough抑制与 switch 陈述式中遗漏 break 相关的警告
finally抑制与未传回 finally 区块相关的警告
hiding抑制与隐藏变数的区域变数相关的警告
incomplete-switch抑制与 switch 陈述式(enum case)中遗漏项目相关的警告
javadoc抑制与 javadoc 相关的警告
nls抑制与非 nls 字串文字相关的警告
null抑制与空值分析相关的警告
rawtypes抑制与使用 raw 类型相关的警告
resource抑制与使用 Closeable 类型的资源相关的警告
restriction抑制与使用不建议或禁止参照相关的警告
serial抑制与可序列化的类别遗漏 serialVersionUID 栏位相关的警告
static-access抑制与静态存取不正确相关的警告
static-method抑制与可能宣告为 static 的方法相关的警告
super抑制与置换方法相关但不含 super 呼叫的警告
synthetic-access抑制与内部类别的存取未最佳化相关的警告
sync-override抑制因为置换同步方法而遗漏同步化的警告
unchecked抑制与未检查的作业相关的警告
unqualified-field-access抑制与栏位存取不合格相关的警告
unused抑制与未用的程式码及停用的程式码相关的警告

4. 常用类型一览表

属性说明
unchecked抑制与未检查的作业相关的警告
rawtypes抑制与使用 raw 类型相关的警告
unused抑制与未用的代码相关的警告
deprecation抑制与使用过时 API 相关的警告
fallthrough抑制 switch 语句中遗漏 break 的警告
serial抑制 Serializable 类缺少 serialVersionUID 警告
all抑制所有警告

5. @SuppressWarnings 的源码

@Target({TYPE, FIELD, METHOD, PARAMETER, CONSTRUCTOR, LOCAL_VARIABLE})
@Retention(RetentionPolicy.SOURCE)
public @interface SuppressWarnings {
    String[] value();
}
本地AI代码助手:智能解析大型代码库,实现自动化重构与理解 在软件开发中,大型代码库的理解与维护是常见挑战。传统方法依赖人工阅读和有限上下文工具,效率低下。通过结合检索增强生成(RAG)和多智能体(Multi-Agent)架构,现代AI工具能够智能解析代码结构,理解模块关系,并精准定位相关代码片段。这种技术不仅能提升代码探索效率,还能自动化执行重构、文档生成等任务,在遗留系统维护、快速上手新项目等场景中发挥关键作用。本文以blackboxaicode/cli为例,展示了如何利用其代码感知和Workflow Automation能力,高效处理复杂代码库。 阅读详情

相关推荐

unity中判断是否联网,判断网络状态的两种方式

unity中判断是否联网,判断网络状态的两种方式

wla2996gpy032的博客 1876

【Java】注解【主线学习笔记】

注解;Java是一门功能强大且广泛应用的编程语言,具有跨平台性和高效的执行速度,广受开发者喜爱。在接下来的学习过程中,我将记录学习过程中的基础语法、框架和实践技巧等,分享学习心得,对自己学习过程进行整理和总结,也希望能为其他学习Java的朋友提供一些帮助和参考。元注解就是对现有的解释进行解释说明的注解。使用@interface关键字来定义注解。可以指定一些元注解(如@Target和@Retention)来控制注解的使用范围和生命周期。可以在类或方法上使用自定义注解。

CBCY_csdn的博客 1030

深入理解HanLP1.x,填平可能遇到的坑

提取指定数量的摘要。自定义词典为什么要单独领出来讲呢?因为在我们的业务开发中,可能分词的效果并不理想,需要定制自己的词库,索引更加常用。例如:小米su7特斯拉modelY比亚042025款6575767670908我们需要分出小米su72025款等词。我们分别看看用字典和不用字典的效果。

static_coder的博客 977

Java注解的学习笔记

文章目录一、概念二、分类三、JDK的注解3.1 JDK的注解可用来编写文档说明:3.2 JDK的注解可进行编译检查3.2 JDK中的元注解四、第三方的注解五、自定义注解六、注解案例七、总结 一、概念 注解是一种代码级别的说明,是JDK1.5以后引入的一个特性。 它可以声明在包、类、字段、方法、局部变量、方法参数等的前面,用来对这些元素进行说明与注释。 注解以@开头,比如 @Autowired,@Service,@Controller,@Override ,@Test,@Value 等等 二、分类 注

我的博客 437

HTML5期末大作业:关于家乡介绍的HTML网页设计——郑州美景HTML+CSS(5页) 学生DW家乡介绍网页设计作业成品 web课程设计网页规划与设计

HTML5期末大作业:我的家乡——郑州美景HTML+CSS(5页) 学生DW网页设计作业成品 web课程设计网页规划与设计 计算机毕设网页设计源码 常见网页设计作业题材有 个人、 美食、 公司、 学校、 旅游、 电商、 宠物、 电器、 茶叶、 家居、 酒店、 舞蹈、 动漫、 明星、 服装、 体育、 化妆品、 物流、 环保、 书籍、 婚纱、 游戏、 节日、 戒烟、 电影、 摄影、 文化、 家乡、 鲜花、 礼品、 汽车、 其他 等网页设计题目, A+水平作业, 可满足大学生网页大作业网页设计需求, 喜

qq_365392777 1万+

SAR学习笔记后续-phased工具箱介绍

摘要:相控阵雷达介绍,基于仿真对MATLAB中phased工具箱进行了详细介绍

yjh_2019的博客 1万+

Java注解学习笔记

前言 要想理解Annotation的作用,就必须先得知道何为元数据。元数据就是关于数据的数据,是添加到程序元素诸如方法、字段、类和包上的额外信息。 注解Annotation就是Java平台的元数据,该机制允许在代码中添加自定义注释,并允许通过反射,以编程方式访问元数据注释。通过为类、方法等提供附加额外数据的标准方法,元数据功能具有简化和改进的潜在能力。 Annotation作用 注解的作用,就是元...

墨玉浮白的博客 349

pyecharts可视化图表-tree:从入门到精通

本文系统介绍了树图(Tree Chart)的可视化技巧,包含基础实现、方向定制和环形布局等实例。树图能清晰展示层次结构数据,适用于组织架构、文件系统等场景。教程详细解析了pyecharts树图的核心配置项,包括数据准备、方向设置(下上、右左)和样式定制,并提供了完整代码示例。通过本指南,读者可快速掌握专业树图的构建方法,实现复杂层次数据的可视化呈现。

大数据内容个人总结与分享 1970

Java张孝祥视频 学习笔记 注解

此博客主要是在观看张孝祥老师的教学视频的过程中,自己所做的学习笔记,在此以博客的形式分享出来,

,,,,的博客 883

网络安全 —— 实验(基于华为eNSP模拟器)

8. 实验八 —— 通过路由的远程管理(基于实验七的基础配置)8. 实验八 —— 通过路由的远程管理(基于实验七的基础配置)6. 实验六 —— 交换机的远程控制(直接控制和间接控制)6. 实验六 —— 交换机的远程控制(直接控制和间接控制)5. 实验五 —— 将交换机作为PC端通过交换机相连。5. 实验五 —— 将交换机作为PC端通过交换机相连。4. 实验四 —— 两个PC机通过两台交换机相连。2. 实验二 —— 两个PC机通过交换机相连。2. 实验二 —— 两个PC机通过交换机相连。

这个家伙看起来很懒,只想把你留下来哦 9337

Python Trimesh库实战:5分钟搞定STL文件解析与3D模型可视化

本文介绍了如何使用Python的Trimesh库快速解析STL文件并进行3D模型可视化。通过简洁的代码示例,演示了从环境搭建、模型加载、几何数据提取到基础变换和批量处理的核心流程,帮助开发者和工程师在5分钟内高效完成3D数据处理与可视化任务。

weixin_32005771的博客 158

Java 注解 学习笔记

概述 注解:说明程序的,给计算机看的 注释:描述程序的,给程序员看的 JDK内置注解 java提供了5个基本的注解,分别是 1.@Override:确保子类确实重写了父类的方法 2.@Deprecated:用于表示某个程序元素类,方法等已过时,当其他程序使用已过时的类,方法时编译器会给出警告 3.@SuppressWarnings:被该注解修饰的元素以及该元素的所有子元素取消显示编译器警告 自定义注解 格式&本质 元注解 public @interface 名称 {} 本质:就是一个接口,该接口默

阿炳的旅程的博客 199

Multisim14.0仿真(五十九)基于74LS161的24进制计数器应用设计

它具有同步预置、异步清零功能,支持并行数据加载,并可在计数使能控制下进行二进制计数。:低电平时,在下一个时钟上升沿加载输入数据(A, B, C, D)。(多个 74LS161D 串联构成 8 位、12 位等更长计数器)。低电平时,下一个时钟上升沿加载输入数据(A, B, C, D)。:低电平有效,立即清零计数器(不受时钟控制)。均为高电平时,每个时钟上升沿计数。:两者均为高电平时,计数器才能递增。:立即清零计数器(不受时钟控制)。(通过预置初始值控制计数范围)。(计数范围:0 ~ 15,即。

corlin6688的博客 4758

java注解+java bean学习笔记

实现bean的注入,当类不属于各种归类的时候(不属于@Controller、@Services等的时候),就可以使用@Component来标注这个类。批量注入.properties配置文件中的属性,prefix的值是properties文件中属性的前缀。注解的本质就是一个继承了 Annotation(注解) 接口的接口。@Repository 标注于dao持久层。@Configuration 标注于配置层。@Controller 标注于控制层。@Service 标注于业务层。

m0_61959584的博客 305

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

Java 学习笔记 注解Annotations

自定义注解 1. @interface :用于声明注解 2. @Retentio :用于说定义注解的生命周期。 也就是保留到什么时候。具体看下面的代码注释说明。这是个元注解(声明注解时使用到的注解) 值域:java.lang.annotation.RetentionPolicy.* 下面的代码中有注释 3. @Target :用于说明注解可以加在那些代码上。 这是个元注解(声明注解时使用到的...

灵台方寸山斜月三星洞 2167

NTscan扫描工具

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

Java学习笔记之注解

文章目录1.注解概述2.元注解3.注解的解析4.模拟junit(注解实现) 1.注解概述 概述: 1.注解是jdk1.5的新特性 2.注解相当于一种标记,是类的组成部分,可以给类携带一些额外的信息 3.标记(注解)可以加在包,类,字段,方法,方法参数以及局部变量上 4.注解是给编译器或jvm看的,编译器或者jvm可以根据注解来完成对应的功能 作用: 给程序带入参数 编译检查 框架的配置 注解的定义格式: //注解属性适用的类型只能是一下几种: //1.八种基础数据类型 byte short int long

记录一只菜鸡的成长之路 477

WINCC7.3破解文件

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

java注解学习笔记

注解 一、用框架的时候是基于注解,比如常见的@Override重写覆盖 。概念:说明程序的。给计算机看的 。注释:用文字描述程序的。拾程序员看的 定义:注解(Annotation),也叫元数据。一种代码级别的说期。它是JDK1.5及以后版本引人的一个特性,与类、接口、枚举是在同一个层次。它可以声明在包、类、字段、方法、局部变量、方法参数等的前面,用来对这些元素进行说明,注释。 概念描述: *JDK...

qq_40764966的博客 545

【Java常用注解学习笔记4】——Java 常用注解扩展对比

【Java常用注解学习笔记4】——Java 常用注解扩展对比

编程技术探索者,分享C/C++、C#、Java、数据库等开发经验,聚焦实战技巧与AI兴趣,助力编程爱好者成长。 2882

Java 注解学习笔记

原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://wanqiufeng.blog.51cto.com/409430/458883   一、什么是java注解          注解,顾名思义,注解,就是对某一事物进行添加注释说明,会存放一些信息,这些信息可能对以后某个时段来说是很有用处的。          Ja

hnxw1117的专栏 436

java 注解学习_Java 注解学习笔记

注解说明Java注解又称Java标注,是Java语言5.0版本开始支持加入源代码的特殊语法元数据。为我们在代码中添加信息提供了一种形式化的方法,使我们可以在稍后某个时刻非常方便的使用这些数据。Java语言中的类、方法、变量、参数和包等都可以被标注。和Javadoc不同,Java标注可以通过反射获取注解内容。在编译器生成类文件时,注解可以被嵌入到字节码中。Java虚拟机可以保留注解内容,在运行时可以...

weixin_42635849的博客 195

JAVA注解学习笔记

学习书籍 JAVA编程思想(第四版)第20章 java SE5中引入的新特性之一,并在java.lang中内置了几种注解: * @Override 表示重写父类方法 * @Deprecated 表示方法过期 * @SuppressWarnings 关闭不当的编译器警号信息 基本语法 定义注解 @Target({ElementType.METHOD...

a120717的博客 279

OneNote JAVA学习笔记2:装箱,枚举,注解

CAnCErWu的博客 254
上一篇: 【Java学习笔记】枚举
下一篇: 【Java学习笔记】异常
jackson凌
博客等级 码龄2年 476粉丝 183原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

jackson凌

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值