读懂 Java 字节码(3)

java-logo.jpg
byte_code_01.JPG

继续向下读取字节码

07 00 16

查表 07 类型为 CONSTANT_class_info 值为两个字节引用
指向全限定名常量项的索引 00 16 转为 22 所以索引值为 22

 #22 = Utf8               com/zidea/test/Demo


07 00 17

07 表示和上一个常量是一样的类型 CONSTANT_class_info 引用值 23 指向

 #23 = Utf8               java/lang/Object


01 00 01 61
  • 01 表示 CONSTANT_utf8_info ,00 01 表示 utf8 编码的字符串长度
  • 61 为字符 a
 #5 = Utf8               a


01 00 01 49
 #6 = Utf8               I

01 00 06 3C 69 6E 69 74 3E

这里读取这段字节码,首先 01 表示 CONSTANT_utf8_info 类型,00 06表示长度,然后向后取 6 个字节 3C 69 6E 69 74 3E为字符 <init>

01 00 03 28 29 30 56
 #8 = Utf8               ()V

01 00 0F 4C 69 6E 65 4E 75 6D 62 65 72 54 61 62 6C 65

01 表示 CONSTANT_utf8_info , 00 0F 表示 15 向后数 15 字符 4C 69 6E 65 4E 75 6D 62 65 72 54 61 62 6C 65 为 LineNumberTable

 #10 = Utf8               LineNumberTable
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容