1、魔數
所有.class檔案的前四個位元組都是魔數,魔數的固定值為0xCAFEBABE。魔數放在檔案的開頭,JVM可以根據檔案的開頭判斷這個檔案是否有可能是.class檔案。如果是這樣的話,之後的操作會繼續下去。
2、版本號
版本號為魔數後的4個字節,前2個位元組顯示下一個版本號,後2個位元組顯示主版本號。
主版本號後面的位元組是常數池入口。在常量池中保存兩種常數:字面量和符號引用。字面量在程式碼中宣告為Final的常數值,符號引用類別和介面的全域限定名、欄位的名稱和說明符、方法的名稱和說明符。常量池整體分為常量池計數器和常量池資料區兩部分。
3、常數池
常數池結束後的兩個位元組,描述了這個Class是類別還是介面,以及是否用Public、Abstract、Final等裝飾符裝飾。
4、存取標誌
常數池結束之後的兩個位元組,描述該Class是類別還是接口,以及是否被Public、Abstract、Final等修飾符修飾。
5、目前類別名稱
存取標誌後的兩個字節,描述的是目前類別的全限定名。這兩個位元組保存的值為常數池中的索引值,根據索引值就能在常數池中找到這個類別的全限定名稱。
6、父類別名稱
目前類別名稱後的兩個字節,描述父類別的全限定名,同上,保存的也是常數池中的索引值。
7、介面資訊
父類別名稱後為兩個位元組的介面計數器,描述了該類別或父類別實作的介面數量。緊接著的n個位元組是所有介面名稱的字串常數的索引值。
8、欄位表
欄位表用於描述類別和介面中聲明的變量,包含類別層級的變數以及實例變量,但不包含方法內部聲明的局部變數。
Java的基本資料型別分為:
1、整數型,用來表示整數的資料型別。
2、浮點型,用來表示小數的資料型別。
3、字元類型,字元類型的關鍵字是「char」。
4、布林類型,是表示邏輯值的基本資料型別。
以上是Java中JVM的字節碼結構是什麼?的詳細內容。更多資訊請關注PHP中文網其他相關文章!