- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我理解 java .class 文件的结构,但是当我想解释原始的十六进制数据时,我有点不知所措。
这是类文件的十六进制转储,不包括 header 和常量池。
我理解 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/
我正在为我的应用程序使用 Tank-Auth。我唯一的问题是激活和重置帐户密码。 用于登录、注册、注销;我对这些代码没有问题; $route['login'] = "/auth/login"; $ro
我是一名优秀的程序员,十分优秀!