java学习笔记:java常见注解语句汇总、解析及应用

文章目录

    • 一、什么是注解
    • 二、注解有什么作用
    • 三、常见的Java注解及其功能介绍和示例
      • @Override
      • @Deprecated
      • @SuppressWarnings
      • @FunctionalInterface
      • @SafeVarargs
      • @SuppressWarnings

一、什么是注解

Java中所有以@开头的语句被称为注解(Annotation)。
注解是一种元数据,它可以用于类、方法、变量等各种程序元素上。它提供了关于程序代码的额外信息,可以用于在编译时和运行时进行处理。

二、注解有什么作用

  • 提供编译时的元数据:注解可以在编译时提供额外的信息,帮助编译器进行代码检查和优化。
  • 提供运行时的元数据:注解可以在运行时提供额外的信息,帮助程序在运行时做出相应的处理。
  • 简化配置和开发:注解可以用于简化配置文件的编写,减少重复的代码和配置项。
  • 提供框架支持:注解可以用于框架中,帮助框架进行自动化的处理和生成代码。

三、常见的Java注解及其功能介绍和示例

@Override

用于标记方法覆盖父类的方法。它可以确保子类正确地覆盖了父类的方法。

@Override
public void doSomething() {// 子类的实现
}

@Deprecated

用于标记已过时的方法或类。它提醒开发者不再推荐使用该方法或类,并建议使用替代方法或类。

@Deprecated
public void oldMethod() {// 过时的方法实现
}

@SuppressWarnings

用于抑制编译器警告。它可以告诉编译器忽略特定类型的警告。

@SuppressWarnings("unchecked")
public List<String> getList() {// 忽略类型转换警告return (List<String>) someObject;
}

@FunctionalInterface

用于标记函数式接口。它确保接口只有一个抽象方法,以便可以使用Lambda表达式进行实现。

@FunctionalInterface
public interface MyInterface {void doSomething();
}

@SafeVarargs

用于标记可变参数方法的安全性。它确保方法不会对可变参数数组进行不安全的操作。

@SafeVarargs
public final <T> void process(T... elements) {// 安全的可变参数方法实现
}

@SuppressWarnings

用于抑制编译器警告。它可以告诉编译器忽略特定类型的警告。

@SuppressWarnings("unchecked")
public List<String> getList() {// 忽略类型转换警告return (List<String>) someObject;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/665392.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

AcWing--超级胶水-->数学,推公式

2875. 超级胶水 - AcWing题库&#xff08;python) nint(input()) res0 sum0 xlist(map(int,input().split())) for i in range(n): ressum*x[i] sumx[i] print(res)

【手写数据库toadb】toadb表对象访问操作,存储管理抽象层软件架构设计思想应用

21 表文件访问秘密 ​专栏内容: 手写数据库toadb 本专栏主要介绍如何从零开发,开发的步骤,以及开发过程中的涉及的原理,遇到的问题等,让大家能跟上并且可以一起开发,让每个需要的人成为参与者。 本专栏会定期更新,对应的代码也会定期更新,每个阶段的代码会打上tag,方便…

项目安全-----加密算法实现

目录 对称加密算法 AES &#xff08;ECB模式&#xff09; AES(CBC 模式)。 非对称加密 对称加密算法 对称加密算法&#xff0c;是使用相同的密钥进行加密和解密。使用对称加密算法来加密双方的通信的话&#xff0c;双方需要先约定一个密钥&#xff0c;加密方才能加密&#…

C++ 动态规划 线性DP 最长共同子序列

给定两个长度分别为 N 和 M 的字符串 A 和 B &#xff0c;求既是 A 的子序列又是 B 的子序列的字符串长度最长是多少。 输入格式 第一行包含两个整数 N 和 M 。 第二行包含一个长度为 N 的字符串&#xff0c;表示字符串 A 。 第三行包含一个长度为 M 的字符串&#xff0c;表…

Servlet+Ajax实现对数据的列表展示(极简入门)

目录 1.准备工作 1.数据库源&#xff08;这里以Mysql为例&#xff09; 2.映射实体类 3.模拟三层架构&#xff08;Dao、Service、Controller&#xff09; Dao接口 Dao实现 Service实现&#xff08;这里省略Service接口&#xff09; Controller层&#xff08;或叫Servlet层…

【blender插件】(1)快速开始

特性 blender的python API有如下特性: 编辑用户界面可以编辑的任意数据(场景,网格,粒子等)。修改用户首选项、键映射和主题。运行自己的配置运行工具。创建用户界面元素,如菜单、标题和面板。创建新的工具。场景交互式工具。创建与Blender集成的新渲染引擎。修改模型的数据…

LeetCode.1686. 石子游戏 VI

题目 题目链接 分析 本题采取贪心的策略 我们先假设只有两个石头a,b&#xff0c; 对于 Alice 价值分别为 a1,a2&#xff0c; 对于 Bob 价值而言价值分别是 b1,b2 第一种方案是 Alice取第一个&#xff0c;Bob 取第二个&#xff0c;Alice与Bob的价值差是 c1 a1 - b1&#xf…

【Crypto | CTF】BUUCTF rsarsa1

天命&#xff1a;第二题RSA解密啦&#xff0c;这题比较正宗 先来看看RSA算法 这道题给出了 p&#xff0c;q&#xff0c;E&#xff0c;就是给了两个质数和公钥 有这三个东西&#xff0c;那就可以得出私钥了 最后把私钥和质数放进去解密即可得到解密后的明文 from gmpy2 impor…

会计的记账凭证

目录 一. 记账凭证的填制与审核1.1 收付款凭证1.2 转账凭证1.3 单式记账凭证 二. 记账凭证的编号 \quad 一. 记账凭证的填制与审核 \quad \quad 1.1 收付款凭证 \quad 注意︰ 凡是涉及货币资金之间收付款的业务如将库存现金存入银行或从银行提取现金等类经济业务。在实际工作中…

程序员的悲哀:知名Python库requests作者失业了

在当今这个快速发展的科技时代&#xff0c;程序员作为创新的驱动力&#xff0c;一直被视为时代的宠儿。然而&#xff0c;即使在这样一个充满机会的领域&#xff0c;也有着不为人知的辛酸。近日&#xff0c;一个令人震惊的消息传遍了编程社区&#xff1a;知名Python库requests的…

css1基础选择器

大纲 一.标签选择器 比较简单&#xff0c;前面直接写目标标签 二.类选择器 应用 例子 三.多类名选择器&#xff08;调用时中间用空格隔开&#xff09; 四.id选择器 应用 五.通配符选择器 应用 六.总结

20240203作业

第二章 引用内联重载 一&#xff0e;选择题 1、适宜采用inline定义函数情况是&#xff08; C &#xff09; A. 函数体含有循环语句 B. 函数体含有递归语句 C. 函数代码少、频繁调用 D. 函数代码多、不常调用 2、假定一个函数为A(int i4, int j0) {;}, 则执行“A (1);”…

gRPC使用详解

起源特点主要优缺点应用场景组成部分使用方法SpringBoot集成gRPCVert.x集成gRPCNacos集成gRPC监控gRPC调用过程Java使用示例 起源 gRPC的起源可以追溯到2015年&#xff0c;当时谷歌发布了一款开源RPC框架&#xff0c;名为gRPC。gRPC的设计初衷是为了提供一种标准化、可通用和跨…

训练模型过程中优雅的指定GPU

目前训练模型大部分在单机多卡的环境下&#xff0c;我们通常会指定一个GPU来训练模型。在不指定GPU情况下&#xff0c;默认使用GPU0来训练&#xff0c;但是很不巧GPU0被别人占了一半显存&#xff0c;导致OOM错误。每次跑模型都要去看下哪张卡显存最大&#xff0c;然后再来修改代…

假期作业2

进程间的7种通信方式&#xff1a; 1、无名管道&#xff1a; 即没有名字的管道&#xff0c;是一个特殊的文件&#xff0c;并且存储在内存上&#xff0c;不在文件系统中展示。只能适用于亲缘进程间的通信&#xff0c;需要在fork之前将管道文件打开&#xff0c;创建子进程后&…

【成品论文30页】2024美赛C题完整1-4问完整解答+答疑服务+完整数据集代码

2024美赛C题 也包括心理和环境因素。理解这些因素对于运动员、教练和观众来说都至关重要&#xff0c;因为它们直接影响着比赛的结果和整体体验。 技术水平和体能因紊 网球比赛中得分的波动首先受到运动员的技术水平和体能因素的影响。技术水平高的运动员往往能够以更加精准和有…

UnityShader(十四)纹理

目录 前言&#xff1a; 单张纹理实现效果&#xff1a; 效果&#xff1a; 前言&#xff1a; 纹理最初的目的是用一张图片来控制模型的外观。使用纹理映射技术我们可以把一张图“贴”在模型表面&#xff0c;逐纹素&#xff08;文素的名字是为了和像素进行区分&#xff09;控制…

CentOS 7中搭建FTP文件共享服务器的完整步骤

CentOS 7中搭建FTP文件共享服务器的完整步骤 要求&#xff1a;设置不允许匿名用户登录&#xff0c;只允许本地用户登录&#xff0c;且将活动范围限制在其家目录。 系统环境&#xff1a; 服务器&#xff1a;172.20.26.167-CentOS7.6 客户端&#xff1a;172.20.26.24-CentOS7…

c语言游戏实战(8):飞机大作战

前言&#xff1a; 飞机大作战游戏是一种非常受欢迎的射击类游戏&#xff0c;玩家需要控制一架战斗机在屏幕上移动&#xff0c;击落敌机以获得分数。本游戏使用C语言编写&#xff0c;旨在帮助初学者了解游戏开发的基本概念和技巧。 在开始编写代码之前&#xff0c;我们需要先了…

泰克示波器(TBS2000系列)触发功能使用讲解——边沿触发

# Trigger区域 触发区域用于对触发功能进行配置。示波器的触发功能用于采集&#xff08;Acquire&#xff09;那些在瞬间出现的信号&#xff0c;便于我们分析观察&#xff0c;此时可以当做逻辑分析仪使用。触发区域按钮包括&#xff1a;menu、Level\Force Trig三个。 目录 1.1 …