Java基础学习:java中的基础注解

ops/2024/9/23 10:18:37/

在Java中,有一些内置的(或称为“基础”)注解(annotation),这些注解在Java标准库中定义,并且具有特定的用途。以下是一些主要的Java内置注解:

  • @Override
    • 用于表示一个方法是重写了父类的方法。
    • 如果在子类中声明的方法并没有重写父类中的任何方法,编译器会报错。
    • 这是一个标记注解,没有关联任何元素。
  • @Deprecated
    • 用于表示某个类或方法已经过时,建议开发者避免使用它。
    • 编译器在编译时会给出警告,告知该元素已过时。
    • 这是一个标记注解,也可以与since元素一起使用,以指定替代项或替代方法的版本。
  • @SuppressWarnings
    • 用于告诉编译器忽略指定的警告。
    • 它可以用于类、方法或字段。
    • 通常与特定的警告键(如"unchecked"、"deprecation"等)一起使用。
  • @SafeVarargs
    • 用于泛型方法或构造函数,以告诉编译器不要对使用泛型参数变量的方法或构造函数发出"unchecked"警告。
    • 这是一个标记注解,通常与泛型方法一起使用。
  • @FunctionalInterface
    • 用于声明接口是函数式接口,即接口中只能有一个抽象方法(除了默认方法和静态方法之外)。
    • 如果接口不符合函数式接口的要求(即存在多个抽象方法),编译器会报错。
    • 这是一个标记注解,没有关联任何元素。
  • @Retention
    • 用于指定注解的保留策略。
    • 这是一个元注解(用于注解其他注解的注解),有三个可能的值:SOURCE(只在源码中存在,编译时被丢弃)、CLASS(在字节码文件中存在,但JVM运行时丢弃)、RUNTIME(在JVM运行时保留,可以通过反射读取)。
  • @Target
    • 用于指定注解可以用于哪些Java元素。
    • 这也是一个元注解,可能的值包括ElementType枚举中的常量,如TYPE(类、接口、注解类型或枚举声明)、METHOD(方法声明)、FIELD(字段声明)等。
  • @Documented
    • 用于表示该注解应该被javadoc和类似的工具记录。
    • 默认情况下,javadoc不包含注解。但是,如果注解被标记为@Documented,那么javadoc就会包含它。
      这是一个标记注解。
  • @Inherited
    • 表示一个注解类型被自动继承。
    • 如果一个使用了@Inherited注解的类型被用于一个类,则这个注解也被用于该类的所有子类。
    • 这是一个标记注解。
  • @Native
    • 这是Java NIO包中的一个注解,用于标记本地方法。在Java 9及以后的版本中,它已经被标记为过时(deprecated),并被 @Native(在java.lang.annotation包中)取代,但用途和效果有所不同。在Java NIO中,@Native通常与ByteBuffer等类一起使用,表示该方法是一个本地方法,直接调用操作系统的API。

注意:Java中的内置注解主要用于元数据编程、文档生成、编译时检查等目的。开发者还可以创建自定义注解,以满足特定的需求。


http://www.ppmy.cn/ops/43890.html

相关文章

Java开发官方文档

Spring中文网 Spring Cloud中文网 Hutool工具类 Ant Design官方文档 遇见狂神说学习文档 若依后台管理系统测试环境 FineBI官方文档 vscode教程 新一代微服务全家桶AlibabaCloudSpringCloud实战 分布式任务调度平台XXL-JOB

代码随想录训练营Day34:背包问题解决打家劫舍

1.198打家劫舍 1.dp数组的含义:dp[i]表示从第零个偷到第i个能够偷到的最大价值。 2.递推公式:分成两种情况: 偷第i个的情况下的最大值,注意此时第i-1个肯定是不偷的,所以此时dp[i] dp[i-2]nums[i];>dp[j] dp[j…

“盲人家庭生活技能训练计划”:编织自立自强的生活篇章

在温馨的家庭环境中,每位成员都渴望拥有独立自主的生活能力,对于盲人来说,这一点尤为重要。随着科技的进步,如“蝙蝠避障”这样创新的辅助软件正逐步进入大众视野,为盲人日常生活带来便利的同时,也启示我们…

「架构」微服务

微服务架构是一种软件开发架构,它将应用程序作为一组小的服务构建,每个服务实现特定的业务功能,并通过轻量级的通信机制(通常是HTTP RESTful API)进行交互。这些服务是松耦合的,可以独立部署、扩展和更新。 核心功能: 服务分解:将应用程序分解为一组小型、独立的服务。…

《Python源码剖析》之pyc文件

前言 前面我们主要围绕pyObject和pyTypeObject聊完了python的内建对象部分,现在我们将开启新的篇章—python虚拟机,将聚焦在python的执行部分,搞懂从“代码”到“执行”的过程。开启新的篇章之前,你也许会有一个疑惑:我…

B树与B+树区别

B树和B树是常见的数据库索引结构,都具有相较于二叉树层级较少,查找效率高的特点,它们之间有以下几个主要区别: 1.节点存储数据的方式不同 B树的叶子结点和非叶子节点都会存储数据,指针和数据共同保存在同一节点中B树…

Python Flask生产环境部署-多线程启动

一、问题现象 开发平台的时候碰到了一个坑,前端某个页面加载时总是会概率性的出现某些请求加载失败,报错:network issue,导致首页部分内容渲染不完全。 浏览器Console界面可以看到页面报错信息如下: has been blocke…

看这两位东北圣女美吗?如何描写美女的大长腿?

看这两位东北圣女美吗?如何描写美女的大长腿? 最近署名为懂球娘娘的一篇描写东北圣女的文章火了,文中描述了海棠朵朵与辛芷蕾这两位娇媚动人的角色。其美艳动人的形象和魅力四溢的描写让人为之倾倒。 这种通过文字展现人物魅力的能力让人佩服…