類文件結構

一. 類文件結構

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

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

        無符號數:基於基本的數據類型,以u1、u2、u4、u8來分別代表1個字節、2個字節、4個字節、8個字節的無符號數。可以用來描述數字、索引引用、數量值或按UTF-8編碼構成字符串值。

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

    Class文件格式:

類型名稱數量說明作用
u4magic1魔數0xCAFEBABE確定這個文件是否爲一個能被虛擬機接受的Class文件
u2minor_version1次版本號
高版本的JDK向下兼容以前版本的Class文件
u2major_version1主版本號
u2constant_pool_count1常量池容量計數值
容量計數是從1而不是0開始的
cp_infoconstant_poolconstant_pool_count-1常量池
存放字面量和符號引用,常量池中的每一項常量都是一個表
u2access_flags1訪問標誌
識別一些類或接口層次的訪問信息
u2this_class1類索引
用於確定這個類的全限定名
u2super_class1父類索引
用於確定這個類的父類的全限定名(除Object外所有類的父類索引都不爲0)
u2interfaces_count1接口索引數值

u2interfacesinterfaces_count接口索引集合
用來描述這個類實現了哪些接口
u2fields_count1


field_infofieldsfields_count字段表
用於描述接口或者類中聲明的變量(不包含方法內部聲明的局部變量)
u2methods_count1


method_infomethodsmethods_count方法表

u2attributes_count1


attribute_infoattributesattributes_count

Class文件、字段表、方發表都可以攜帶自己的屬性表集合、以用於描述某些場景專有信息


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章