成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

class文件結(jié)構(gòu)

cnio / 1750人閱讀

class文件的大致結(jié)構(gòu)從前到后
名稱 用途 大小 補(bǔ)充說明
魔數(shù) (用來驗(yàn)證是不是虛擬機(jī)合適的class文件 4字節(jié) 因?yàn)楹缶Y名可以隨意改動(dòng),所以使用魔數(shù)也是出于安全的考慮
版本號(hào) (用來標(biāo)識(shí)該class文件能夠在哪個(gè)版本jdk運(yùn)行) 4字節(jié) 前2字節(jié)是次版本號(hào),后2字節(jié)是主版本號(hào) 版本高的jdk可以加載版本低的class文件
常量池 (class文件的資源倉(cāng)庫(kù)) 不定 主要存放字面量和符號(hào)引用,字面量就是文本字符串和申明為final的常量,符號(hào)引用包括了類和接口的全限定名,字段名稱和描述符。方法名稱和描述符,常量池的容量計(jì)數(shù)從1開始。因?yàn)槌A砍?的位置用來存儲(chǔ)常量池的容量
訪問標(biāo)志 (定義是不是類,是不是public 2字節(jié) 就是判斷一個(gè)class的訪問標(biāo)志,是否final,是否public
類索引 確定本類的全限定名 2字節(jié)
父類索引 確定父類的全限定名 2字節(jié)
接口索引計(jì)數(shù)器 統(tǒng)計(jì)接口的數(shù)量 2字節(jié)
接口索引集合 接口們的全限定名 接口計(jì)數(shù)器*2
字段表集合 描述申明的變量包括類級(jí)變量實(shí)例變量不包括局部變量 不定 不會(huì)列出超類或父接口的繼承的字段
方法表集合 描述申明的方法包括訪問標(biāo)志,名稱索引,描述符索引,屬性表索引,屬性表集合

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/69625.html

相關(guān)文章

  • 深入理解虛擬機(jī)之類文件結(jié)構(gòu)

    摘要:對(duì)象創(chuàng)建與訪問指令雖然類實(shí)例和數(shù)組都是對(duì)象,但虛擬機(jī)對(duì)類實(shí)例和數(shù)組的創(chuàng)建和操作使用了不同的字節(jié)碼指令。異常處理指令在虛擬機(jī)中,處理異常語句不是由字節(jié)碼指令來實(shí)現(xiàn)的,而是采用異常表的方式。 《深入理解Java虛擬機(jī):JVM高級(jí)特性與最佳實(shí)踐(第二版》讀書筆記與常見面試題總結(jié) 本節(jié)常見面試題(推薦帶著問題閱讀,問題答案在文中都有提到): 簡(jiǎn)單介紹一下Class類文件結(jié)構(gòu)(常量池主要存放的是...

    張憲坤 評(píng)論0 收藏0
  • 完全圖解JVM Class文件結(jié)構(gòu)

    摘要:對(duì)一個(gè)文件的字節(jié)碼進(jìn)行逐行的分析是理解文件結(jié)構(gòu)的最佳方式。本文的目的在于盡可能完整地拆解的字節(jié)碼并將其分塊分析,最終得到的圖解結(jié)構(gòu)希望可以幫助到你。字節(jié)碼指令的具體含義鑒于與結(jié)構(gòu)是相對(duì)獨(dú)立的主題不再詳述,后續(xù)會(huì)再單獨(dú)深入介紹。 對(duì)一個(gè)class文件的字節(jié)碼進(jìn)行逐行的分析是理解class文件結(jié)構(gòu)的最佳方式。但是往往復(fù)雜的二進(jìn)制字節(jié)碼會(huì)讓人望而卻步,或者只有仔細(xì)一點(diǎn)點(diǎn)盯著才能保證不花眼。本...

    ygyooo 評(píng)論0 收藏0
  • 如何實(shí)現(xiàn)一個(gè)Java Class字節(jié)解析器(Golang版)

    摘要:在屬性中,和分別用于存儲(chǔ)字節(jié)碼長(zhǎng)度和字節(jié)碼指令,每條指令即一個(gè)字節(jié)類型。在虛擬機(jī)執(zhí)行時(shí),通過讀取中的一個(gè)個(gè)字節(jié)碼,并將字節(jié)碼翻譯成相應(yīng)的指令。另外,雖然是一個(gè)類型的值,但是實(shí)際上一個(gè)方法不允許超過條字節(jié)碼指令。 最近在寫一個(gè)私人項(xiàng)目,名字叫做SmallVM,SmallVM的目的在于通過實(shí)現(xiàn)一個(gè)輕量級(jí)的Java虛擬機(jī),加深對(duì)Java虛擬機(jī)的認(rèn)知和理解。在Java虛擬機(jī)加載類的過程中,需要...

    diabloneo 評(píng)論0 收藏0
  • 自己動(dòng)手實(shí)現(xiàn)一個(gè)Java Class解析器

    摘要:在屬性中,和分別用于存儲(chǔ)字節(jié)碼長(zhǎng)度和字節(jié)碼指令,每條指令即一個(gè)字節(jié)類型。在虛擬機(jī)執(zhí)行時(shí),通過讀取中的一個(gè)個(gè)字節(jié)碼,并將字節(jié)碼翻譯成相應(yīng)的指令。另外,雖然是一個(gè)類型的值,但是實(shí)際上一個(gè)方法不允許超過條字節(jié)碼指令。 最近在寫一個(gè)私人項(xiàng)目,名字叫做ClassAnalyzer,ClassAnalyzer的目的是能讓我們對(duì)Java Class文件的設(shè)計(jì)與結(jié)構(gòu)能夠有一個(gè)深入的理解。主體框架與基本功...

    yanbingyun1990 評(píng)論0 收藏0
  • JVM詳解4.類文件結(jié)構(gòu)

    摘要:類文件的結(jié)構(gòu)文件是一組以位字節(jié)為基礎(chǔ)單位的二進(jìn)制流,各個(gè)數(shù)據(jù)項(xiàng)目嚴(yán)格按照順序緊湊地排列在文件之中,中間沒有添加任何分隔符,這使得整個(gè)文件中存儲(chǔ)的內(nèi)容幾乎全部是程序運(yùn)行的必要數(shù)據(jù),沒有空隙存在。 點(diǎn)擊進(jìn)入我的博客 4.1 字節(jié)碼 平臺(tái)無關(guān):Sun公司以及其他的虛擬機(jī)提供商發(fā)布了許多可以運(yùn)行在各種不同平臺(tái)上的虛擬機(jī),這些虛擬機(jī)都可以載入和執(zhí)行同一種平臺(tái)無關(guān)的字節(jié)碼,從而實(shí)現(xiàn)了程序的一次編...

    yvonne 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<