class檔案結構[0]
.java原始碼檔案經過編譯以後會生成.class位元組碼檔案。
可以使用WinHex直接以十六進位制形式檢視
也可以使用javap命令和jclasslib軟體(注意64位作業系統匹配,和版本不要太低,我使用低版本的時候出現過位元組碼指令顯示錯誤的問題)
後面講解的時候,不打算詳細到具體位元組
所以主要通過javap命令和jclasslib軟體。這兩個方式的展示各有優缺,後續展示常量池的時候通過javap命令,其餘部分通過jclasslib軟體。
比如說在D:盤目錄下有一個Test.class檔案
javap-v D:\Test.class
使用jclasslib檢視
相關推薦
class檔案結構[0]
.java原始碼檔案經過編譯以後會生成.class位元組碼檔案。 可以使用WinHex直接以十六進位制形式檢視 也可以使用javap命令和jclasslib軟體(注意64位作業系統匹配,和版本不要
class檔案結構與jvm位元組碼指令
https://blog.csdn.net/luckydog1991/article/details/51654964這篇文章詳細的介紹了class檔案和位元組碼指令 Class檔案結構 https://blog.csdn.net/tyrone1979/article/details/9
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檔案中, 中間沒有任何分
JVM八:class檔案結構(2)
下面我們接著為訪問標誌,類索引,父類索引,介面索引集合,欄位集合,方法表集合 訪問標誌: 常量池結束後緊接著的兩個位元組代表訪問標誌,用來標識一些類或介面的訪問資訊,包括:這個Class是類還是介面;是否定義為public;是否定義為abstract;如果是類的話,是否被宣告為f
深入理解JVM(七)——Class檔案結構
什麼是JVM的“無關性”? Java具有平臺無關性,也就是任何作業系統都能執行Java程式碼。之所以能實現這一點,是因為Java執行在虛擬機器之上,不同的作業系統都擁有各自的Java虛擬機器,因此Java能實現“一次編寫,處處執行”。 而JVM不僅具有平
class檔案結構[4]
【參考連結】 通過gclasslib來粗略講解一下.class檔案的整體結構 整體結構如下所示 以如下原始碼為例 Java Code 1 2 3 4 5 6 7 8 9 10
Java Class檔案結構
平臺無關性和語言無關性 Java在剛剛誕生的時候提出過一個宣傳口號:“一次編寫,到處執行”,這句話充分表達了軟體開發人員對衝破平臺界限的渴求。“與平臺無關”的理想最終實現在作業系統的應用層上:Sun公司及其他虛擬機器提供商釋出了許多可以執行在各種不同平臺上的虛
class檔案結構[3] 常量池
【參考連結】 常量池中的內容大致上分為3類 1 當前類中出現的各種基本資料型別的數值。 CONSTANT_Utf8_info 這個又可以分為5類 1) 字串字面量 注意char及char[]
class檔案結構[2] static final、static、final、普通型別成員變數的賦初值
不考慮作用域修飾符,成員變數的型別有: static final 型別、僅static型別、僅final型別、普通型別 並且,我們在定義成員變數的時候,還可以通過=賦初值。(其中包含final時強制要求賦初值) 那麼,這些賦值操作都是在哪個階段完成的呢? 按照執行的先後順序 1.對於staticfinal
class檔案結構[5] 區域性變量表的槽位複用及其對垃圾回收的影響
long、double型別在區域性變量表中需要佔用2個槽位 其他型別如int、引用型別需要佔用1個槽位 非static的成員方法的第一個區域性變數都是this引用 以上一節的例子為例 一共
Java Class檔案結構例項分析(下)
發表文章之後,發現很多圖片顯示不了,請閱讀我的公眾號文章,以獲得本文最佳體驗: 本篇我們繼續分析Class檔案結構的方法及屬性部分內容,上節內容回顧請檢視: Class檔案格式資訊 繼續上節例項程式碼 package chapter6; public
Class檔案結構(七)
Class檔案是平臺無關性的基礎之一。 平臺無關性和語言無關性。Java的一個非常著名的宣傳口號:“一次編寫,到處執行(Write Once,Run Anywhere)”。Sun公司以及其他虛擬機器提供商釋出了許多可以執行在各種不同平臺上的虛擬機器,這些虛擬機器都可以載入和
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 Class檔案格式有一些基本的瞭解,建議結合相關書籍進行對照閱讀。 Class檔案格式資訊 例項程式碼 package chapter6; public
深入理解java虛擬機器-class檔案結構(5)
這個就不敲了。。。Class檔案格式如下圖,class檔案就是用下面的的結構組織起來的 u2表示2個位元組 u4表示4個位元組 常量池的一些型別 各常量的結構如下圖(不全) 寫了一個簡單的java類 package vm.c2; publi
Class檔案結構全面解析(上)
什麼是Class檔案? 在Java剛剛誕生的時候就提出了一個非常著名的口號:“一次編寫,到處執行。(Write Once,Run Anywhere)”。為了實現平臺無關性,各種不同平臺的虛擬機器都統一使用一種程式儲存格式,就是位元組碼(ByteCode)。它就以二進位制位元組流的方式被存放在Class檔案中,
Class檔案結構全面解析(下)
接上回書 書接上一回,分享了Class檔案的主要構成,同時也詳細分析了魔數、次版本號、主版本號、常量池集合、訪問標誌的構造,接下來我們就繼續學習。 歡迎關注微信公眾號:萬貓學社,每週一分享Java技術乾貨。 類索引和父類索引 類索引(this_class)和父類索引(super_class)都是一個u2型別的
Java Class類檔案結構
平臺無關性 Java是與平臺無關的語言,這得益於Java原始碼編譯後生成的儲存位元組碼的檔案,即Class檔案,以及Java虛擬機器的實現。不僅使用Java編譯器可以把Java程式碼編譯成儲存位元組碼的Class檔案,使用JRuby等其他語言的編譯器也可以把程式程式碼編譯成Class檔案,虛擬機