JAVA基础知识:注解

        Java注解是一种元数据(metadata)机制,它允许我们在代码中添加额外的信息和标记。注解在Java开发中起着重要的作用,可以用于编写文档、代码分析、编译时检查和运行时处理等方面。本文将详细介绍Java注解的基础知识,包括注解的定义、元注解、内置注解以及如何自定义注解,并提供相关的示例代码,帮助读者更好地理解和应用Java注解。

一、注解的定义

        Java注解是通过@符号来标记的,紧跟在@后面的是注解的名称。注解可以附加在包、类、字段、方法和方法参数等上面,用于提供额外的信息。注解本身并不影响程序的执行,但可以被编译器、开发工具和框架等利用。

二、元注解

元注解是用于注解其他注解的注解,Java提供了几个内置的元注解,包括:

  • @Retention:指定注解的保留策略,可选值有SOURCE、CLASS和RUNTIME。
  • @Target:指定注解的作用目标,可选值有PACKAGE、TYPE、FIELD、METHOD、PARAMETER等。
  • @Documented:指定注解是否包含在Java文档中。
  • @Inherited:指定注解是否可以被继承。

三、内置注解:

Java提供了一些内置的注解,用于特定的用途,例如:

  • @Override:用于标记方法覆盖父类的方法。
  • @Deprecated:用于标记已经过时的方法或类。
  • @SuppressWarnings:用于抑制编译器警告。

四、自定义注解:

        除了使用内置注解,开发者还可以自定义注解。自定义注解需要使用@interface关键字来定义,并可以在注解中定义成员变量。注解的成员变量可以指定默认值,并可以通过反射机制获取注解的值。

import java.lang.annotation.*;@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.METHOD)
public @interface MyAnnotation {String value() default "";int count() default 0;
}public class MyClass {@MyAnnotation(value = "Hello", count = 5)public void myMethod() {// 方法体}
}public class Main {public static void main(String[] args) {MyClass obj = new MyClass();try {Method method = obj.getClass().getMethod("myMethod");MyAnnotation annotation = method.getAnnotation(MyAnnotation.class);System.out.println(annotation.value()); // 输出:HelloSystem.out.println(annotation.count()); // 输出:5} catch (NoSuchMethodException e) {e.printStackTrace();}}
}

五、注解的应用

Java注解在各种场景中都有广泛的应用,例如:

  • 文档生成:通过注解来生成文档,如JavaDoc工具。
  • 编译时检查:通过注解来进行静态代码分析,如检查未使用的方法或字段。
  • 运行时处理:通过注解来实现AOP(面向切面编程)等功能

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

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

相关文章

云原生基础入门概念

文章目录 云原生的概念云原生的关键技术为何选择云原生?云原生的实际应用 当谈及现代软件开发和IT基础架构时,云原生成为了一个备受关注的话题。它代表了一种软件架构和开发方法,旨在充分利用云计算环境的优势,以提高应用程序的可…

【AI美图】第02期效果图,AI人工智能全自动绘画,美图欣赏

今天给大家献上一组最新提示词 参照图生成图像 依据参照图生成新的图像需要掌握一些技巧,以下是一些可能有用的技巧: 观察参照图:在开始生成新图像之前,仔细观察参照图是非常重要的。你需要了解图像的布局、颜色、线条、细节等…

新一代“垫图”神器,IP-Adapter的完整应用解读

导读 不用训练lora,一张图就能实现风格迁移,还支持多图多特征提取,同时强大的拓展能力还可接入动态prompt矩阵、controlnet等等,这就是IP-Adapter,一种全新的“垫图”方式,让你的AIGC之旅更加高效轻松。 …

2024年 vue3 使用wow.js

准备用vue3搞了懒加载动画功能 被反复折磨了好久,国内资料太少,官方又没找到demo 原来是vue3不支持wowjs vue3换成了wow.js,太容易混淆了! npm 安装wow.js main.js 引入import wow.js/css/libs/animate.css 核心代码 import…

智慧工地源码(微服务+Java+Springcloud+Vue+MySQL)

智慧工地系统是依托物联网、互联网、AI、可视化建立的大数据管理平台,是一种全新的管理模式,能够实现劳务管理、安全施工、绿色施工的智能化和互联网化。围绕施工现场管理的人、机、料、法、环五大维度,以及施工过程管理的进度、质量、安全三…

Python Socket编程

Python Socket编程 文章目录 Python Socket编程1. 弄懂HTTP、Socket、TCP这几个概念五层网络模型 2. client和server实现通信Socket编程模式指南代码实现 3. socket实现聊天和多用户连接4. socket模拟http请求5. socket使用I/O多路复用模式模拟http请求 1. 弄懂HTTP、Socket、T…

k8s-1.24.0版本部署

基础配置[三台centos] 1.关闭防火墙与selinux systemctl stop firewalld systemctl disable firewalld sed -i ‘s/enforcing/disabled/’ /etc/selinux/config setenforce 0 2.添加host记录 cat >>/etc/hosts <<EOF 192.168.180.190 k8s-master 192.168.180.180 k…

51单片机的外部中断的以及相关寄存器的讲解

中断系统 本文主要涉及8051单片机的中断系统的讲解与使用 其中包括中断相关寄存器的介绍与使用以及外部中断初始化的代码分析。 文章目录 中断系统一、 中断的介绍二、 中断结构及相关寄存器2.1 中断源 2.2 中断请求控制器2.2.1 TCON寄存器2.2.2 SCON寄存器2.2.3 中断允许寄存器…

【每日一题】【12.15】2415.反转二叉树的奇数层

&#x1f525;博客主页&#xff1a; A_SHOWY&#x1f3a5;系列专栏&#xff1a;力扣刷题总结录 数据结构 云计算 数字图像处理 力扣每日一题_ 2415. 反转二叉树的奇数层https://leetcode.cn/problems/reverse-odd-levels-of-binary-tree/ 今天终于碰到了一个mid题目&#x…

数据库常用分库分表方案

为什么需要分库分表 分库分表是因应数据库处理大规模数据时所面临的挑战而出现的解决方案. // 提高性能 单个数据库在数据量增加时容易出现性能瓶颈。分库分表可以减轻单个数据库的负担&#xff0c;提高系统的读写性能和响应速度. // 提高并发能力 大量用户同时访问数据库可能…

N-Channel Trench Power MOSFET FMA30H150SL

FMA30H150SL N-Channel Trench Power MOSFET FMA30H150SL Application &#xff1a;  LCD TV  Notebook  Elevator  Inductive heating  Power tools  Broadband FMA30H150SL Features &#xff1a;  30V,150A  RDS(ON)2.4mΩ (Typ.) VGS 10V …

若依 ruoyi-vue3 集成aj-captcha实现滑块、文字点选验证码

目录 0. 前言0.1 说明 1. 后端部分1.1 添加依赖1.2. 修改 application.yml1.3. 新增 CaptchaRedisService 类1.4. 添加必须文件1.5. 移除不需要的类1.6. 修改登录方法1.7. 新增验证码开关获取接口1.8. 允许匿名访问 2. 前端部分&#xff08;Vue3&#xff09;2.1. 新增依赖 cryp…

“一键调整尺寸,轻松完成视频批量剪辑:批量放大视频尺寸“

你是否曾经遇到过需要批量调整视频尺寸的情况&#xff1f;无论是为了适应不同的播放平台&#xff0c;还是为了满足客户的特定需求&#xff0c;批量调整视频尺寸都是一项繁琐而耗时的工作。但是&#xff0c;现在有一种方法可以让你轻松完成这项任务&#xff0c;那就是使用我们的…

linux系统检测是否受到ddos攻击

在Linux系统上&#xff0c;有一些方法可以帮助检测是否遭受了DDoS攻击。以下是一些常见的方法&#xff1a; 网络流量分析&#xff1a;使用网络分析工具&#xff0c;如tcpdump、Wireshark等&#xff0c;可以捕获网络流量并分析数据包。通过观察数据包的来源、目标、流量等特征&a…

pta单身狗

“单身狗”是中文对于单身人士的一种爱称。本题请你从上万人的大型派对中找出落单的客人&#xff0c;以便给予特殊关爱。 输入格式&#xff1a; 输入第一行给出一个正整数 N&#xff08;≤50000&#xff09;&#xff0c;是已知夫妻/伴侣的对数&#xff1b;随后 N 行&#xff0c…

『CV学习笔记』轻量化卷积神经网络MobileNet从V1到V3

轻量化卷积神经网络MobileNet从V1到V3 文章目录 一. 预备知识1.1. 深度可分离卷积(Depthwise Separable Convolution,就是深度卷积+逐点卷积)1.1.1. 标准卷积(Standard convolutional)1.1.2. 深度卷积(Depthwise Convolution)1.1.3. 逐点卷积(Pointwise Convolution,就是11卷…

11-二分-索引二分-第一个错误的版本

这是索引二分的第十一篇算法&#xff0c;来个简单题缓一下&#xff0c;力扣链接 你是产品经理&#xff0c;目前正在带领一个团队开发新的产品。不幸的是&#xff0c;你的产品的最新版本没有通过质量检测。由于每个版本都是基于之前的版本开发的&#xff0c;所以错误的版本之后的…

Excel高效办公:文秘与行政办公的智能化革新

&#x1f482; 个人网站:【 海拥】【神级代码资源网站】【办公神器】&#x1f91f; 基于Web端打造的&#xff1a;&#x1f449;轻量化工具创作平台&#x1f91f; 代理 IP 推荐&#xff1a;&#x1f449;品易 HTTP 代理 IP &#x1f485; 想寻找共同学习交流的小伙伴&#xff0c…

分发饼干(贪心算法)

假设你是一位很棒的家长&#xff0c;想要给你的孩子们一些小饼干。但是&#xff0c;每个孩子最多只能给一块饼干。 对每个孩子 i&#xff0c;都有一个胃口值 g[i]&#xff0c;这是能让孩子们满足胃口的饼干的最小尺寸&#xff1b;并且每块饼干 j&#xff0c;都有一个尺寸 s[j]…

超声波清洗机怎么买不会踩坑?减少踩坑机会超声波清洗机推荐

在当今快节奏的生活中&#xff0c;超声波清洗机已经成为了我们生活中不可或缺的助手。无论是清洗餐具、首饰&#xff0c;还是清洗医疗设备、实验室仪器&#xff0c;超声波清洗机都能以其高效、便捷的特性&#xff0c;帮助我们解决各种清洁难题。然而&#xff0c;面对市场上琳琅…