JVM官方文件筆記
阿新 • • 發佈:2022-03-29
1)要正確實現 Java 虛擬機器,您只需要能夠讀取class
檔案格式並正確執行其中指定的操作即可。不屬於 Java 虛擬機器規範的實現細節會不必要地限制實現者的創造力。例如,執行時資料區域的記憶體佈局、使用的垃圾收集演算法以及 Java 虛擬機器指令的任何內部優化(例如,將它們轉換為機器程式碼)都由實現者自行決定。
2) 由 Java 虛擬機器執行的編譯程式碼使用獨立於硬體和作業系統的二進位制格式表示,通常(但不一定)儲存在檔案中,稱為class
檔案格式
3) 與 Java 程式語言一樣,Java 虛擬機器對兩種型別進行操作:原始型別 和引用型別。相應地,有兩種值可以儲存在變數中,作為引數傳遞,由方法返回和操作: 原始值和引用值
4) Java 虛擬機器包含對物件的顯式支援。一個物件要麼是一個動態分配的類例項,要麼是一個數組。一個物件可能存在多個引用。物件始終通過型別引用的值進行操作、傳遞和測試
5) 浮點型別為浮點型和雙精度型,概念上與32位單精度和64位雙精度格式IEEE 754值和操作相關,如IEEE二進位制浮點演算法標準(ANSI/IEEE標準754-1985,紐約)中所規定。存在NAN(無效值,如0/0.0)和Infinity(無窮,如1/0.0)、正負零等
6)儘管 Java 虛擬機器定義了一個 boolean
型別,但它只提供了非常有限的支援。沒有專門用於對boolean
值進行操作的 Java 虛擬機器指令。相反,Java 程式語言中對 boolean
int
資料型別的值;如果使用boolean宣告一個基本型別的變數時,那麼該變數佔4個位元組,如果使用boolean宣告一個數組型別的時候,那麼每個陣列的元素佔一個位元組。