真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

java的class文件知識(shí)點(diǎn)有哪些

這篇文章主要介紹“java的class文件知識(shí)點(diǎn)有哪些”,在日常操作中,相信很多人在java的class文件知識(shí)點(diǎn)有哪些問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對(duì)大家解答”java的class文件知識(shí)點(diǎn)有哪些”的疑惑有所幫助!接下來,請(qǐng)跟著小編一起來學(xué)習(xí)吧!

創(chuàng)新互聯(lián)建站是一家專注于成都網(wǎng)站設(shè)計(jì)、成都網(wǎng)站建設(shè)與策劃設(shè)計(jì),深圳網(wǎng)站建設(shè)哪家好?創(chuàng)新互聯(lián)建站做網(wǎng)站,專注于網(wǎng)站建設(shè)10多年,網(wǎng)設(shè)計(jì)領(lǐng)域的專業(yè)建站公司;建站業(yè)務(wù)涵蓋:深圳等地區(qū)。深圳做網(wǎng)站價(jià)格咨詢:18982081108

一、class文件內(nèi)容

java的class文件知識(shí)點(diǎn)有哪些

二、內(nèi)容解釋

魔數(shù)

magic(魔數(shù))的作用是用于識(shí)別文件類型是否是class文件,class文件的魔數(shù)是0xCAFEBABE 。

當(dāng)JVM在嘗試加載某個(gè)文件到內(nèi)存中來的時(shí)候,會(huì)首先判斷此class文件有沒有JVM認(rèn)為可以接受的“簽名”,即JVM會(huì)首先讀取文件的前4個(gè)字節(jié),判斷該4個(gè)字節(jié)是否是“0xCAFEBABE”,如果是,則JVM會(huì)認(rèn)為可以將此文件當(dāng)作class文件來加載并使用。

版本號(hào)

minor_version和major_version用于標(biāo)記該class文件是由哪個(gè)版本的Java編譯器編譯而來(jdk1.6,1.7,1.8等)

由低版本的Java編譯器編譯產(chǎn)生的class文件可以運(yùn)行在高版本的虛擬機(jī)上,即向下兼容,但虛擬機(jī)不能執(zhí)行超過自身版本的class文件,即使高版本class文件除了版本號(hào)以外其他內(nèi)容與低版本class文件完全相同。

java的class文件知識(shí)點(diǎn)有哪些

常量池

constant_pool(常量池)主要用于存放Class中的字面常量(literal)以及符號(hào)常量 。

字面常量包括:Class中的字符串常量、聲明為final的值。

符號(hào)常量主要包括:類的全限定名、成員變量的名稱和描述符、方法的名和描述符。
常量池由多個(gè)常量表組成,每個(gè)常量表保存一種常量,如:int型常量表保存的都是int類型的常量,字符串類型常量表保存所有String類型的常量。Java 7 之前共有11種不同的常量表,自 Java 7 開始新增3種常量表。

訪問標(biāo)志位

用于表示某個(gè)類或者接口的訪問權(quán)限及基礎(chǔ)屬性。

access_flags用于保存Class以及Interface的訪問標(biāo)志,包括Class訪問限定類型是public、protected、private中的一種,是否final、abstract的Class等。

java的class文件知識(shí)點(diǎn)有哪些

類索引、父類索引以及接口索引

this_class(類索引)用于確定該類的全限定名

super_class(父類)用于確定父類的的全限定名

interfaces(接口索引)用于確定該類實(shí)現(xiàn)的所有接口的全限定名。它們的值指向常量池中的對(duì)應(yīng)常量。

成員變量

fields (成員變量)用于保存Class中的所有成員變量,包括static變量和instance變量。

Class中的所有成員變量以一張表格的形式存儲(chǔ),存儲(chǔ)了成員變量的訪問標(biāo)志位、變量名索引、變量描述符索引、變量屬性等信息。需要注意的是,fields中不會(huì)包含從父類中繼承來的成員變量。

方法

methods(方法)用于保存Class中聲明的所有方法,包括static方法和instance方法。Class中的所有方法也是以一張表格的形式存儲(chǔ),存儲(chǔ)的信息也主要是:方法訪問標(biāo)志位、方法名索引、方法描述符索引、方法屬性等信息。如果父類的方法沒有被子類覆蓋,子類的methods中也不會(huì)出現(xiàn)父類的方法。

屬性

attributes(屬性)用于保存Class中成員變量或者方法的詳細(xì)特有信息。

每個(gè)field或者method中都可以包含一個(gè)屬性表,用于描述該成員變量或者方法的詳細(xì)信息。屬性由多個(gè)屬性表組成,每個(gè)屬性表包含一種特定類型的屬性。最常見的幾個(gè)屬性類型如下表:

三、文件結(jié)構(gòu)示意圖

java的class文件知識(shí)點(diǎn)有哪些

到此,關(guān)于“java的class文件知識(shí)點(diǎn)有哪些”的學(xué)習(xí)就結(jié)束了,希望能夠解決大家的疑惑。理論與實(shí)踐的搭配能更好的幫助大家學(xué)習(xí),快去試試吧!若想繼續(xù)學(xué)習(xí)更多相關(guān)知識(shí),請(qǐng)繼續(xù)關(guān)注創(chuàng)新互聯(lián)網(wǎng)站,小編會(huì)繼續(xù)努力為大家?guī)砀鄬?shí)用的文章!


名稱欄目:java的class文件知識(shí)點(diǎn)有哪些
標(biāo)題URL:http://weahome.cn/article/jhpdps.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部