读懂 Java 字节码(3)
2019-04-04 本文已影响20人
zidea
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