JVM規范系列第1章:引言


如果你還沒下載《Java虛擬機規范》這本書,那么先點擊這里下載再一塊兒看吧。

前言

Java 虛擬機是一個抽象化的機器,整個規范中提及的 Java 虛擬機都是抽象化的概念,而不是特指 Oracle 或者其他某一間公司的 Java 虛擬機實現。

可以看到JVM其實就是一個虛擬機的機器,與我們的普通PC一樣,有內存、有CPU。JVM的內存就是運行時數據區,其CPU就是Java虛擬機指令集。

另外,我們還修正了許多《Java 虛擬機規范(第一版)》 和《Java 語言規范》 之
間不一致的內容。

Java開發者必須要搞懂的兩個規范:《Java虛擬機規范》和《Java語言規范》。

在這個版本中, 我們擴充了 Class 文件格式以便支持新的 Java
語言特性,譬如泛型和變長參數方法等。

擴充了Class文件格式,便於支持泛型等特性。后續在查看Class文件格式的時候,可以重點查看相關內容。TODO

如新的字節碼驗證方式, 它源於 Eva Rose 的一篇碩士論文, 文中以 Java Card 平台為背景, 展示了 JVM 字節碼驗證的另一種全新的實現思路。 這導致了 Java MECLDC 第一版實現的誕生, 並最終成為 Java SE 平台 Class 驗證過程的理論基礎。關於這部分內容將會在本書的第四章中介紹①。

字節碼驗證也是一個不小的課題啊,標記一下,第四章看看。 TODO

引言

Java 虛擬機是整個 Java 平台的基石,是 Java 技術用以實現硬件無關與操作系統無關的關鍵部分,是 Java 語言生成出極小體積的編譯代碼的運行平台,是保障用戶機器免於惡意代碼損害的保護屏障。

Java虛擬機對於Java平台就是如此重要!

Java 虛擬機可以看作是一台抽象的計算機。如同真實的計算機那樣,它有自己的指令集以及各種運行時內存區域。

這里說的再次與我之前的理解是一致的,JVM就是一台抽象得計算機,有自己的CPU指令集和內存,只不過表現形式不同而已。

Java 虛擬機與 Java 語言並沒有必然的聯系,它只與特定的二進制文件格式——Class 文件格式所關聯, Class 文件中包含了 Java 虛擬機指令集(或者稱為字節碼、 Bytecodes)和符號表,還有一些其他輔助信息。

Java虛擬機與Java語言並沒有必然的聯系,這個是學習JVM必須要懂的一個知識點。

提要

下面是JVM規范中關於個章節的提要:

第 2 章:概覽了 Java 虛擬機整體架構。
第 3 章:介紹如何將 Java 語言編寫的程序轉換為 Java 虛擬機指令集描述。
第 4 章:定義 Class 文件格式,它是一種與硬件及操作系統無關的二進制格式,被用來表示編譯后的類和接口。
第 5 章:定義 Java 虛擬機啟動以及類和接口的加載、 鏈接和初始化過程。
第 6 章:定義 Java 虛擬機指令集,按這些指令的指令助記符的照字母順序來表示。
第 7 章:提供了一張以操作碼值為索引的 Java 虛擬機操作碼助記符表

說明

這部分介紹了規范里的一些固定的格式。

  • 代碼塊使用藍色底
  • 匯編語言使用斜體

JVM規范系列文章目錄


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM