接續前文(魔數、版本號、常量池、訪問標志),本文詳細解析確定類繼承關系的三項關鍵數據:
u2,指向 CONSTANT_Class_info,確定當前類全限定名。u2,指向 CONSTANT_Class_info,確定父類全限定名(Object 除外)。u2 interfaces_count:實現的接口數量(0 表無);interfaces_count 個 u2,按 implements 順序存放各接口的常量池索引。... 訪問標志後 ... 00 03 // 類索引 → 常量池 #3 00 04 // 父類索引 → 常量池 #4 00 00 // interfaces_count = 0
#3 = Class #23 // TestClass #4 = Class #24 // java/lang/Object
public class TestClass { } // 隱式 extends Object, 未 implements 任何接口
完美吻合:類索引 #3 → TestClass,父類索引 #4 → Object,接口計數 0。
CONSTANT_Class_info → CONSTANT_Utf8_info(全限定名字符串);