gpt4 book ai didi

java - 解释 Java 类文件的十六进制转储

转载 作者:行者123 更新时间:2023-11-30 08:50:28 24 4
gpt4 key购买 nike

我理解 java .class 文件的结构,但是当我想解释原始的十六进制数据时,我有点不知所措。

这是类文件的十六进制转储,不包括 header 和常量池。

hex dump of class file

我理解 header 是魔数(Magic Number),minor_version 和 major_version。似乎下一个值应该是访问标志。

这张图表中的值是多少? 000000b0?我认为这将是一个简单的数字而不是十六进制值。

this_class 是哪个值,是常量池的索引,可以确定类的详细信息?

最佳答案

000000b0 不是数据的一部分。就是后面16个字节所在的内存地址。

两位十六进制数是实际数据。从左到右阅读它们。每行分为两组,每组八个,纯粹是为了帮助计算内存地址等。

因此,为了间接回答您的问题,您可以通过简单地计算魔数(Magic Number)、次要版本和主要版本使用的字节数来计算出访问标志的位置。接下来是访问标志。同样,要找到任何其他值(例如 this_class),您必须计算出它们的偏移量并查看数据中的那个位置。

您说您期望的是“简单数字而不是十六进制值”,但这没有任何意义,因为十六进制值简单数字。它们只是以 base-16 而不是 base-10 表示。网上有很多资源可以教您如何在两者之间进行转换。

关于java - 解释 Java 类文件的十六进制转储,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30975031/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com