類文件結構

一. 類文件結構ide

    Class文件格式採用一種相似於C語言結構體的僞結構來存儲數據。this

    這種僞結構中只有兩種數據類型:無符號數和表編碼

        無符號數:基於基本的數據類型,以u一、u二、u四、u8來分別表明1個字節、2個字節、4個字節、8個字節的無符號數。能夠用來描述數字、索引引用、數量值或按UTF-8編碼構成字符串值。spa

        :由多個無符號數或其餘表做爲數據項構成的複合數據類型。,全部表都習慣性地以"_info"結尾。整個Class文件本質上就是一張表。索引

    Class文件格式:接口

類型 名稱 數量 說明 做用
u4 magic 1 魔數 0xCAFEBABE 肯定這個文件是否爲一個能被虛擬機接受的Class文件
u2 minor_version 1 次版本號
高版本的JDK向下兼容之前版本的Class文件
u2 major_version 1 主版本號
u2 constant_pool_count 1 常量池容量計數值
容量計數是從1而不是0開始的
cp_info constant_pool constant_pool_count-1 常量池
存放字面量和符號引用,常量池中的每一項常量都是一個表
u2 access_flags 1 訪問標誌
識別一些類或接口層次的訪問信息
u2 this_class 1 類索引
用於肯定這個類的全限定名
u2 super_class 1 父類索引
用於肯定這個類的父類的全限定名(除Object外全部類的父類索引都不爲0)
u2 interfaces_count 1 接口索引數值

u2 interfaces interfaces_count 接口索引集合
用來描述這個類實現了哪些接口
u2 fields_count 1


field_info fields fields_count 字段表
用於描述接口或者類中聲明的變量(不包含方法內部聲明的局部變量)
u2 methods_count 1


method_info methods methods_count 方法表

u2 attributes_count 1


attribute_info attributes attributes_count

Class文件、字段表、方發表均可以攜帶本身的屬性表集合、以用於描述某些場景專有信息
相關文章
相關標籤/搜索