一起养成写作习惯!这是我参与「掘金日新计划 · 4 月更文挑战」的第13天,点击查看活动详情。
-
第#1项 0a 表示一个 Method 信息,00 06 和 00 15(21) 表示它引用了常量池中 #6 和 #21 项来获得 这个方法的【所属类】和【方法名】
- 0000000 ca fe ba be 00 00 00 34 00 23 0a 00 06 00 15 09
-
第#2项 09 表示一个 Field 信息,00 16(22)和 00 17(23) 表示它引用了常量池中 #22 和 # 23 项 来获得这个成员变量的【所属类】和【成员变量名】
- 0000000 ca fe ba be 00 00 00 34 00 23 0a 00 06 00 15 09
- 0000020 00 16 00 17 08 00 18 0a 00 19 00 1a 07 00 1b 07
-
第#3项 08 表示一个字符串常量名称,00 18(24)表示它引用了常量池中 #24 项
- 0000020 00 16 00 17 08 00 18 0a 00 19 00 1a 07 00 1b 07
-
第#4项 0a 表示一个 Method 信息,00 19(25) 和 00 1a(26) 表示它引用了常量池中 #25 和 #26 项来获得这个方法的【所属类】和【方法名】
- 0000020 00 16 00 17 08 00 18 0a 00 19 00 1a 07 00 1b 07
-
第#5项 07 表示一个 Class 信息,00 1b(27) 表示它引用了常量池中 #27 项
- 0000020 00 16 00 17 08 00 18 0a 00 19 00 1a 07 00 1b 07
-
第#6项 07 表示一个 Class 信息,00 1c(28) 表示它引用了常量池中 #28 项
- 0000020 00 16 00 17 08 00 18 0a 00 19 00 1a 07 00 1b 07
- 0000040 00 1c 01 00 06 3c 69 6e 69 74 3e 01 00 03 28 29
-
第#7项 01 表示一个 utf8 串,00 06 表示长度,3c 69 6e 69 74 3e 是【】
- 0000040 00 1c 01 00 06 3c 69 6e 69 74 3e 01 00 03 28 29
-
第#8项 01 表示一个 utf8 串,00 03 表示长度,28 29 56 是【()V】其实就是表示无参、无返回值
- 0000040 00 1c 01 00 06 3c 69 6e 69 74 3e 01 00 03 28 29
- 0000060 56 01 00 04 43 6f 64 65 01 00 0f 4c 69 6e 65 4e
-
第#9项 01 表示一个 utf8 串,00 04 表示长度,43 6f 64 65 是【Code】
- 0000060 56 01 00 04 43 6f 64 65 01 00 0f 4c 69 6e 65 4e
(4)访问标识与继承信息
-
21 表示该 class 是一个类,公共的
- 0000660 29 56 00 21 00 05 00 06 00 00 00 00 00 02 00 01 05
-
表示根据常量池中 #5 找到本类全限定名
- 0000660 29 56 00 21 00 05 00 06 00 00 00 00 00 02 00 01 06
-
表示根据常量池中 #6 找到父类全限定名
- 0000660 29 56 00 21 00 05 00 06 00 00 00 00 00 02 00 01
-
表示接口的数量,本类为 0
- 0000660 29 56 00 21 00 05 00 06 00 00 00 00 00 02 00 01
(5)Field 信息
表示成员变量数量,本类为 0
0000660 29 56 00 21 00 05 00 06 00 00 00 00 00 02 00 01
(6)Method 信息
(7)附加属性
- 00 01 表示附加属性数量
- 00 13 表示引用了常量池 #19 项,即【SourceFile】
- 00 00 00 02 表示此属性的长度
- 00 14 表示引用了常量池 #20 项,即【HelloWorld.java】
0001100 00 12 00 00 00 05 01 00 10 00 00 00 01 00 13 00
0001120 00 00 02 00 14