中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

java的class文件知識點有哪些

發布時間:2022-01-14 09:12:06 來源:億速云 閱讀:156 作者:iii 欄目:大數據

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

一、class文件內容

java的class文件知識點有哪些

二、內容解釋

魔數

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

當JVM在嘗試加載某個文件到內存中來的時候,會首先判斷此class文件有沒有JVM認為可以接受的“簽名”,即JVM會首先讀取文件的前4個字節,判斷該4個字節是否是“0xCAFEBABE”,如果是,則JVM會認為可以將此文件當作class文件來加載并使用。

版本號

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

由低版本的Java編譯器編譯產生的class文件可以運行在高版本的虛擬機上,即向下兼容,但虛擬機不能執行超過自身版本的class文件,即使高版本class文件除了版本號以外其他內容與低版本class文件完全相同。

java的class文件知識點有哪些

常量池

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

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

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

訪問標志位

用于表示某個類或者接口的訪問權限及基礎屬性。

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

java的class文件知識點有哪些

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

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

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

interfaces(接口索引)用于確定該類實現的所有接口的全限定名。它們的值指向常量池中的對應常量。

成員變量

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

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

方法

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

屬性

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

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

三、文件結構示意圖

java的class文件知識點有哪些

到此,關于“java的class文件知識點有哪些”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

上林县| 布拖县| 万宁市| 泸定县| 韶关市| 饶河县| 鄂温| 巫山县| 汉寿县| 亳州市| 中卫市| 屏南县| 娄烦县| 邹平县| 乌鲁木齐市| 合作市| 瓦房店市| 孟津县| 兰考县| 年辖:市辖区| 宝兴县| 鄯善县| 双江| 台东市| 阳高县| 台南市| 临泽县| 沙坪坝区| 彝良县| 松滋市| 延寿县| 朝阳区| 扎囊县| 宜黄县| 古浪县| 潢川县| 鄂托克前旗| 浑源县| 茂名市| 维西| 内黄县|