【JVM】阅读Class字节码:常量池

目录

基本结构解析

常量池

常量池简介

如何阅读Class文件中的常量池信息


基本结构解析

Magic(魔数)
Magic的唯一作用是确定这个文件是否为一个能被虚拟机所接受的class 文件。魔数值固定为0xCAFEBABE,不会改变。

常量池

常量池简介

下图是反编译过后的字节码文件中我们找到的常量池的部分。

 可见常量池数量是从1到52,共52个常量,了解了常量池的数量,接下去我们看整个常量池的内容怎么读,即下图红线部分。

如何阅读Class文件中的常量池信息

 不同的常量类型,用tag来区分的,它后面对应的info 结构是不一样的。

 比如下图的常量07。

 根据7去找对应的常量类型,发现是CONSTANT_Class。

 接着去找CONSTANT_Class的info结构。

也就是07后面的两位,即0002是它的名字的索引,即在常量池中的索引。

即下图全限定名的索引为2。

这样07就读完了,我们接着往下看后面的01。

同理,通过01找到常量类型。

 找到它对应的结构。

发现接下去的两位是它的长度,即十六进制的0019,也就是十进制的25,从0019往后数25个到6F的位置,右边对应的就是它的全限定名。接着往下看就又是07,这样多看几次就学会看了。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【机器学习】 技术栈和开发环境搭建

各位大佬好 ,这里是阿川的博客 , 祝您变得更强 个人主页:在线OJ的阿川 大佬的支持和鼓励,将是我成长路上最大的动力 阿川水平有限,如有错误,欢迎大佬指正 博客目录 技术栈编程语言库框架编辑器项目IDE …

Maven 的仓库、周期和插件

优质博文:IT-BLOG-CN 一、Maven 仓库 在Maven的世界中,任何一个依赖、插件或者项目构建的输出,都可以称为构建。Maven在某个统一的位置存储所有项目的共享的构建,这个统一的位置,我们就称之为仓库。任何的构建都有唯一…

【Linux】AlmaLinux 9.4版本发布

AlmaLinux 9.4 正式版发布,该版本基于 Redhat Enterprise 9.4,内核版本号: 5.14.0-427.13.1.el9_4.x86_64 相对于Rocky Linux, AlmaLinux更加的稳定,生产环境建议使用AlmaLinux来替代CentOS 7.x AlmaLinux 9.4版本系统…

Star-CCM+绘制网格-全局网格定义(网格类型选择、薄体网格、网格重置)

前言 绘制网格是有限体积法仿真中必不可少的环节。目前Star-CCM+新版本(2304版)导入面网格只可以导入到部件中。网格类型也只能在操作中完成。零部件导入部件后,选中参与计算的全部部件→右键选择“将部件分配给区域”。此处需要注意的是,只有分配给区域后的部件才能进行网…

Java医院绩效管理应用系统源码java+ maven+ avue 公立医院绩效考核管理系统源码 支持二开

Java医院绩效管理应用系统源码java maven avue 公立医院绩效考核管理系统源码 支持二开 医院绩效管理系统解决方案紧扣新医改形势下医院绩效管理的要求,以“工作量为基础的考核方案”为核心思想,结合患者满意度、服务质量、技术难度、工作效率、医德医风…

详解typora配置亚马逊云科技Amazon S3图床

欢迎免费试用亚马逊云科技产品:https://mic.anruicloud.com/url/1333 当前有很多不同的博客社区,不同的博客社区使用的编辑器也不尽相同,大概可以分为两种,一种是markdown格式,另外一种是富文本格式。例如华为云开发者…

【基于 PyTorch 的 Python 深度学习】6 视觉处理基础:卷积神经网络(1)

前言 文章性质:学习笔记 📖 学习资料:吴茂贵《 Python 深度学习基于 PyTorch ( 第 2 版 ) 》【ISBN】978-7-111-71880-2 主要内容:根据学习资料撰写的学习笔记,该篇主要介绍了卷积神经网络的卷积层部分。 预&#xff1…

计算机字符集产生的历史与乱码

你好,我是 shengjk1,多年大厂经验,努力构建 通俗易懂的、好玩的编程语言教程。 欢迎关注!你会有如下收益: 了解大厂经验拥有和大厂相匹配的技术等 希望看什么,评论或者私信告诉我! 文章目录 一…

halcon 2D模板匹配 3D

一、概述 模板匹配常用于定位和查找,有很多的方式,halcon 中就有灰度匹配 、形状匹配、变形匹配、缩放匹配等,其实最常用的还是两种第一个就是灰度匹配、还有就是形状匹配 二、金字塔概述 网上有很多关于金字塔的解释,我这里直…

JCR一区 | Matlab实现TTAO-CNN-BiLSTM-MATT多特征分类预测

JCR一区 | Matlab实现TTAO-CNN-BiLSTM-MATT多特征分类预测 目录 JCR一区 | Matlab实现TTAO-CNN-BiLSTM-MATT多特征分类预测分类效果基本介绍程序设计参考资料 分类效果 基本介绍 1.Matlab实现TTAO-CNN-BiLSTM-MATT三角拓扑聚合优化器优化双向长短期记忆神经网络融合多头注意力…

智慧园区能耗管控系统,3D可视化开发都需要哪些技术栈?

数据可视化: 数据可视化是将数据通过图表、图形、地图等可视化方式展示,使得数据更加直观、易于理解和分析。在智慧园区能耗管控系统中,可以使用各种图表库(如Echarts、Highcharts)和可视化工具(如Tableau…

【LeetCode:2391. 收集垃圾的最少总时间 + 二分】

🚀 算法题 🚀 🌲 算法刷题专栏 | 面试必备算法 | 面试高频算法 🍀 🌲 越难的东西,越要努力坚持,因为它具有很高的价值,算法就是这样✨ 🌲 作者简介:硕风和炜,…

【强化学习-深度强化学习DRL】什么问题可以用DRL解决?条件:场景固定数据廉价

引言:深度强化学习适用于满足场景固定、数据廉价这两个要求的问题求解。本节对场景固定进行详细的论述。术语:深度强化学习(DRL) 条件一:场景固定(两个分布一致) 场景固定指的是,保…

美股市场恒生指数冲刺19000点关口 地产股大涨

查查配5月10日电(中新财经记者 谢艺观)5月10日,港股现强势行情,恒生指数盘中一度冲至18993.28点,距离19000点关口仅一步之遥。 美港通证券以其专业的服务和较低的管理费用在市场中受到不少关注。该平台提供了实盘交易、止盈止损、仓位控制等功能,旨在为投资者提供更为全面的投…

HNCTF-PWN

1.ez_pwn 直接看危险函数,不能溢出,只能覆盖ebp。 后面紧接的又是leave,ret 很明显是栈迁移,通过printf打印出ebp,通过偏移计算出栈地址。 通过gdb调试,偏移是0x38 以下是payload: from pwn import * #i…

通过单总线实现单片机之间的数据传输

单总线、没有时钟线的通信时,不能使用简单的高低电平来通信,因为接收方不知道此时发送的数据是第几位数据,容易造成错乱。 因此在使用一根线对外传输数据时,需要自定义一个通信协议,它至少要包含格式头数据&#xff0c…

二维数组 和 变长数组

在上一期的内容中,为诸君讲解到了一维数组,在一维数组的基础上,C语言中还有着多维数组,其中,比较典型且运用较为广泛的就是我们今天的主角——二维数组 一 . 二维数组的概念 我们把单个或者多个元素组成的数组定义为一…

springboot项目打包部署

springboot打包的前提条件jdk必须17以后不然本地运行不来(我用的jdk是22) 查看自己电脑jdk版本可以参考(完美解决Windows10下-更换JDK环境变量后,在cmd下执行仍java -version然出现原来版本的JDK的问题-CSDN博客) 1、…

uniapp音乐播放整理

一、前置知识点 1.1 音频组件控制-uni.createInnerAudioContext() 创建并返回内部 audio 上下文 innerAudioContext 对象。 主要用于当前音乐播放; 1.1.1 innerAudioContext属性 属性类型说明只读平台差异说明srcString音频的数据链接,用于直接播放…

学浪app的课程怎么导出来

在这个知识如星辰般璀璨的时代,学浪app汇聚了无数智慧的火花,点亮了求知者的前行之路。你是否曾在学浪的海洋中遨游,汲取知识的甘露,却渴望将那些珍贵的课程内容,如同宝藏一般,从数字的海洋中提取出来&…