news 2026/8/22 4:00:55

hotspot中的Java类对象如何保存注解

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
hotspot中的Java类对象如何保存注解

hotspot中的Java类对象如何保存注解

注解

Java 注解(Annotation)又称 Java 标注,是 JDK5.0 引入的一种注释机制。

Java 语言中的类、方法、变量、参数和包等都可以被标注。和 Javadoc 不同,Java 标注可以通过反射获取标注内容。在编译器生成类文件时,标注可以被嵌入到字节码中。Java 虚拟机可以保留标注内容,在运行时可以获取到标注内容 。 当然它也支持自定义 Java 标注。

注解的解析

类以及类中函数和字段的注解信息都是通过解析字节码文件获得。

// Sift through annotations, looking for those significant to the VM: static void parse_annotations(...) { ... const int atype = Bytes::get_Java_u2((address)abase + atype_off);//读取字节码 const int count = Bytes::get_Java_u2((address)abase + count_off); const Symbol* const aname = check_symbol_at(cp, atype); ... coll->set_annotation(... }

注解的保存

关键是注解的保存。在hotspot中,使用Annotations类进行保存。

typedef Array<u1> AnnotationArray; class Annotations: public MetaspaceObj { ... AnnotationArray* _class_annotations; //类本身的注解集合 Array<AnnotationArray*>* _fields_annotations;//字段的注解集合 AnnotationArray* _class_type_annotations;//类type的注解集合 Array<AnnotationArray*>* _fields_type_annotations;//字段type的注解集合
  • _class_annotations 和 _class_type_annotations的区别是

    _class_annotations

@DeprecatedpublicclassMyClass{}

​ _class_type_annotations

@NonNullMyClass<String>obj;
  • _fields_annotations 和 _fields_type_annotations的区别是

    _fields_annotations

classExample{@Deprecatedintx;}

​ _fields_type_annotations

classExample{List<@NonNullString>list;}

在InstanceKlass中使用如下字段描述类中所有的注解

class InstanceKlass: public Klass { ... protected: ... Annotations* _annotations;
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/8/21 15:00:49

4. 为什么 Triton 不够了

作者&#xff1a;HOS(安全风信子) 日期&#xff1a;2026-01-17 来源平台&#xff1a;GitHub 摘要&#xff1a; 2026年&#xff0c;随着大模型规模和复杂度的急剧增长&#xff0c;传统推理框架Triton Inference Server在处理现代推理场景时逐渐显现出局限性。本文深入剖析了Trit…

作者头像 李华
网站建设 2026/8/21 15:00:55

LangGraph详解:构建智能代理工作流的新范式

目录 前言 什么是LangGraph&#xff1f; 核心概念 主要特性 与传统链式调用的对比 开始使用&#xff1a; LangGraph核心架构 状态管理 节点与边 条件边与循环 实战案例&#xff1a;构建智能客服工单处理系统 案例需求分析 系统实现 步骤1&#xff1a;定义状态结构…

作者头像 李华
网站建设 2026/8/21 15:00:32

Python+django的图书资料借阅信息管理系统的设计与实现

目录摘要开发技术路线相关技术介绍核心代码参考示例结论源码lw获取/同行可拿货,招校园代理 &#xff1a;文章底部获取博主联系方式&#xff01;摘要 随着信息化时代的快速发展&#xff0c;图书资料的管理效率成为图书馆和各类机构关注的重点。传统的纸质记录方式效率低下且容易…

作者头像 李华
网站建设 2026/8/21 15:00:31

STM32-270-多功能水质监测系统(设计源文件+万字报告+讲解)(支持资料、图片参考_相关定制)_文章底部可以扫码

STM32-270-多功能水质监测系统(设计源文件万字报告讲解)&#xff08;支持资料、图片参考_相关定制&#xff09;_文章底部可以扫码 产品功能描述&#xff1a; 本系统由STM32F103C8T6单片机核心板、TFT1.44寸彩屏液晶显示电路、&#xff08;无线蓝牙/无线WIFI/无线视频监控模块-可…

作者头像 李华
网站建设 2026/8/21 15:00:31

C语言:指针

吃透 C 语言指针&#xff1a;从本质到实战&#xff0c;告别 “指针恐惧症” 指针是 C 语言的灵魂&#xff0c;也是很多初学者入门路上的 “拦路虎”—— 有人觉得它晦涩难懂、容易出错&#xff0c;写代码时避之不及&#xff1b;也有人掌握后感叹其灵活高效&#xff0c;能轻松实…

作者头像 李华