Java class 檔案結構及解析
java檔案經過編譯之後就可以形成class檔案。簡而言之,java檔案是我們自己書寫的檔案,也是給我們看的,而class檔案則是給VM看的。但是我們用notepad檢視class檔案時,卻發現那是一串二進位制的檔案。那麼class檔案到底是些啥東西呢?
本質上講,class檔案和java檔案儲存的東西是相同的,只是形式不同。class檔案的結構
Class位元組碼中有兩種資料型別:
1.位元組資料直接量:這是基本的資料型別。共細分為u1、u2、u4、u8四種,分別代表連續的1個位元組、2個位元組、4個位元組、8個位元組組成的整體資料。
2.表:表是由多個基本資料或其他表,按照既定順序組成的大的資料集合。表是有結構的,它的結構體現在,組成表的成分所在的位置和順序都是已經嚴格定義好的。在上圖中,表指的是以_info為結尾的型別。
相關推薦
Java class 檔案結構及解析
java檔案經過編譯之後就可以形成class檔案。簡而言之,java檔案是我們自己書寫的檔案,也是給我們看的,而class檔案則是給VM看的。但是我們用notepad檢視class檔案時,卻發現那是一串二進位制的檔案。那麼class檔案到底是些啥東西呢? 本質
Java虛擬機器(四):Class檔案結構及位元組碼指令
接下來的兩個位元組為this_class項,它是一個對常量池的索引。在this_class位置的常量池入口必須為CONSTANT_Class_info表。該表由兩個部分組成——標籤和name_index。標籤部分是一個具有CONSTANT_Class值的常量,在name_index位置的常量池入口為一
Java Class檔案結構
平臺無關性和語言無關性 Java在剛剛誕生的時候提出過一個宣傳口號:“一次編寫,到處執行”,這句話充分表達了軟體開發人員對衝破平臺界限的渴求。“與平臺無關”的理想最終實現在作業系統的應用層上:Sun公司及其他虛擬機器提供商釋出了許多可以執行在各種不同平臺上的虛
Java Class檔案結構例項分析(下)
發表文章之後,發現很多圖片顯示不了,請閱讀我的公眾號文章,以獲得本文最佳體驗: 本篇我們繼續分析Class檔案結構的方法及屬性部分內容,上節內容回顧請檢視: Class檔案格式資訊 繼續上節例項程式碼 package chapter6; public
Java Class檔案結構例項分析(上)
發表文章之後,發現很多圖片顯示不了,請閱讀我的公眾號文章,以獲得本文最佳體驗: 本文假定讀者對Java Class檔案格式有一些基本的瞭解,建議結合相關書籍進行對照閱讀。 Class檔案格式資訊 例項程式碼 package chapter6; public
Class檔案結構全面解析(上)
什麼是Class檔案? 在Java剛剛誕生的時候就提出了一個非常著名的口號:“一次編寫,到處執行。(Write Once,Run Anywhere)”。為了實現平臺無關性,各種不同平臺的虛擬機器都統一使用一種程式儲存格式,就是位元組碼(ByteCode)。它就以二進位制位元組流的方式被存放在Class檔案中,
Class檔案結構全面解析(下)
接上回書 書接上一回,分享了Class檔案的主要構成,同時也詳細分析了魔數、次版本號、主版本號、常量池集合、訪問標誌的構造,接下來我們就繼續學習。 歡迎關注微信公眾號:萬貓學社,每週一分享Java技術乾貨。 類索引和父類索引 類索引(this_class)和父類索引(super_class)都是一個u2型別的
Java Class檔案格式解析及例項
JAVA無關性概述 Java語言從剛誕生開始曾提出一個非常著名的宣言:“一次編寫,到處執行(Write Once, Run Anywhere)”。Sun公司和其他虛擬機器公司釋出了許多可以執行在不同作業系統上的虛擬機器,這些虛擬機器都可以載入和執行同一種平臺無關的位元組碼,
Java的class檔案結構與理解
class檔案採用一種類似C語言的結構,裡面只有兩種資料型別 1 無符號數 ,2 表。 無符號數屬於基本資料型別,用u1、u2、u4、u8來表示1個位元組,2個位元組,4個位元組,8個位元組。此型別用於描述數字、索引引用、按UTF-8編碼後的字串。 一個clas檔案結構圖: 給一個編譯後
後端--Java中class檔案結構
最近剛看完《深入理解Java虛擬機器》周志明著 第六章 類檔案結構,在這裡寫一篇關於JVM如何解析Class檔案結構的部落格。 Class類檔案結構 Class檔案是一組以8位元組為基礎單位的二進位制流, 各個資料專案嚴格按照順序緊湊排列在class檔案中, 中間沒有任何分
深入理解java虛擬機器-class檔案結構(5)
這個就不敲了。。。Class檔案格式如下圖,class檔案就是用下面的的結構組織起來的 u2表示2個位元組 u4表示4個位元組 常量池的一些型別 各常量的結構如下圖(不全) 寫了一個簡單的java類 package vm.c2; publi
Java類的結構及使用
方法 java size pan 一段 獨立 屬性 行為 返回值 類的結構: 屬性(對象數據的描述),方法(對象的行為,也就是對象可以做的事),構造的方法(用於實例化對象),內部類(即在類體中聲明的類),塊(分為靜態塊和實例塊) 類的作用:類就是一個模板,定義多個對象共同的
Linux下的檔案結構,及對應資料夾的作用
/bin 二進位制可執行命令 /dev 裝置特殊檔案 /etc 系統管理和配置檔案 /etc/rc.d 啟動的配置檔案和指令碼 /home 使用者主目錄的基點,比如使用者user的主目錄就是/home/user,可以用~user表示 /li
class檔案結構與jvm位元組碼指令
https://blog.csdn.net/luckydog1991/article/details/51654964這篇文章詳細的介紹了class檔案和位元組碼指令 Class檔案結構 https://blog.csdn.net/tyrone1979/article/details/9
深入理解Java Class檔案格式(九)
經過前八篇關於class檔案的部落格, 關於class檔案格式的內容也基本上講完了。 本文是關於class檔案格式的最後一篇。 在這篇部落格中, 將會講解關於方法的幾個屬性。 理解這篇部落格的內容, 對於理解JVM執行引擎起著重要作用。 關於虛擬機器執行引擎有關的內容, 會在本專欄後面的部落格中涉及
深入理解Java Class檔案格式(八)
在本專欄的第一篇文章 深入理解Java虛擬機器到底是什麼 中, 我們主要講解了什麼是虛擬機器, 這篇部落格是對JVM的一個概述。 在隨後的幾篇文章中,一直在講解class檔案格式。 在今天這篇部落格中, 將會繼續講解class檔案中的其他資訊。 在本文中, 將會講解class檔案中的最後一
深入理解Java Class檔案格式(七)
本專欄列前面的一系列部落格, 對Class檔案中的一部分資料項進行了介紹。 本文將會繼續介紹class檔案中未講解的資訊。 先回顧一下上面一篇文章。 在上一篇部落格中, 我們介紹了: this_class 對當前類的描述 super_class &
深入理解Java Class檔案格式(六)
經過前幾篇文章, 終於將常量池介紹完了, 之所以花這麼大的功夫介紹常量池, 是因為對於理解class檔案格式,常量池是必須要了解的, 因為class檔案中其他地方,大量引用了常量池中的資料項。 對於還不瞭解常量池的讀者, 如果想要深入瞭解class檔案格式, 或者想繼續讀這篇部落格和本專
java class檔案的載入
java class檔案載入過程:jvm把描述類的資料從class檔案載入(loading)到記憶體(java方法區)中,中間對資料進行校驗(verification)、轉換解析(resolution)和初始化(initialization),最終形成可以被jvm直接使用的Jav
WordPress 主題檔案結構及執行
開啟一個 WordPress 主題資料夾,它可能包括以下檔案: WordPress 自帶主題 twentysixteen 的檔案構成 從檔名字我們也可以推斷出其大致作用,就這個主題而言,從上至下,它們的作用分別是: css(資料夾):存放 css 檔案