首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 綜合教學

JVM Class 文件結構:類索引、父類索引、接口索引集合深度解析

     編輯:Java 綜合教學

JVM Class 文件結構:類索引、父類索引、接口索引集合深度解析

接續前文(魔數、版本號、常量池、訪問標志),本文詳細解析確定類繼承關系的三項關鍵數據:

數據結構定義

  • 類索引:u2,指向 CONSTANT_Class_info,確定當前類全限定名。
  • 父類索引:u2,指向 CONSTANT_Class_info,確定父類全限定名(Object 除外)。
  • 接口索引集合:
    • 首項 u2 interfaces_count:實現的接口數量(0 表無);
    • 後接 interfaces_count 個 u2,按 implements 順序存放各接口的常量池索引。

實戰驗證:某 TestClass.class

十六進制片段

... 訪問標志後 ...
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。

核心機制總結

  1. 類/父類索引 → CONSTANT_Class_info → CONSTANT_Utf8_info(全限定名字符串);
  2. 接口索引集合按聲明順序存放,支持多實現;
  3. 這三項緊隨訪問標志,構成類繼承關系的完整描述。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved