一坦刀、class文件類型
? class文件:是一組以8位字節(jié)為基礎(chǔ)單位的二進(jìn)制流虽填,通過(guò)類似于結(jié)構(gòu)體的偽結(jié)構(gòu)存儲(chǔ)數(shù)據(jù)吞彤,兩種數(shù)據(jù)結(jié)構(gòu)包括無(wú)符號(hào)數(shù)和表我衬。
?無(wú)符號(hào)數(shù):屬于基本的數(shù)據(jù)類型,以u(píng)1,u2,u4,u8代表一個(gè)字節(jié)饰恕,2個(gè)字節(jié)挠羔,4個(gè)字節(jié),8個(gè)字節(jié)埋嵌,無(wú)符號(hào)數(shù)可以用來(lái)描述數(shù)字破加,索引引用,數(shù)量值等雹嗦。
?表:多個(gè)無(wú)符號(hào)數(shù)或者其他表作為數(shù)據(jù)項(xiàng)構(gòu)成的復(fù)合數(shù)據(jù)類型范舀。
class文件包括:class版本號(hào),次版本了罪,主版本锭环,常量池,訪問(wèn)標(biāo)識(shí)泊藕,類索引田藐,父類索引,接口索引集合吱七,字段表集合汽久,方法表集合,屬性表集合踊餐。
前4個(gè)字節(jié)代表:class版本號(hào)景醇,class文件是否可以被虛擬機(jī)接受。5和6字節(jié)代表:次版本號(hào)吝岭,7,8字節(jié)代表主版本號(hào)三痰。
常量池:兩大類常量,字面量和符號(hào)引用窜管。字面量類似文本字符串散劫,聲明為fianl的常量值等;符號(hào)引用包括了三類常量:類和接口的全限定名幕帆,字段名稱和描述符获搏,方法名稱和描述符,有14種常量項(xiàng)目失乾,每一種都是一個(gè)表常熙。
訪問(wèn)標(biāo)志:用于識(shí)別一些類和接口信息,包括Class是類還是接口碱茁,是否為public類型裸卫,是不是abstract類型,是否被身邊為final類型纽竣。
類索引墓贿,父類索引,接口索引:class文件用這3項(xiàng)數(shù)據(jù)來(lái)確定類的繼承關(guān)系蜓氨,類索引來(lái)確定類的全名聋袋,父類索引確定父類的全名,接口索引语盈,確定類實(shí)現(xiàn)了那些接口舱馅。
字段表集合:用來(lái)表示接口和類中聲明的變量,描述字段的各種屬性如字段名稱刀荒,字段修飾符代嗤,字段可見(jiàn)性,是實(shí)例變量還是類變量等缠借。
方法表結(jié)合:和字段表集合類似干毅,描述方法的一些屬性。
屬性表集合:
二泼返、字節(jié)碼指令