Java®編程語言是一種通用的、併發的、面向對象的語言,它的語法相似於C和C++,但它省略了許多使C和C++複雜、混亂和不安全的特性。最初開發Java平臺是爲了解決爲聯網的消費者設備構建軟件的問題,它旨在支持多種主機架構,並容許安全交付軟件組件,爲了知足這些要求,編譯後的代碼必須可以在網絡上傳輸,在任何客戶端上運行,並向客戶端保證運行安全。java
萬維網的普及使這些屬性更加有趣,Web瀏覽器使數百萬人可以以簡單的方式上網並訪問富媒體內容,最後有一種介質,不管你使用的是什麼機器,仍是鏈接到快速網絡或慢速調制解調器,你所看到和聽到的內容基本相同。程序員
網絡愛好者很快發現網絡HTML文檔格式支持的內容太有限了,HTML擴展(例如表單)只突出了這些限制,同時明確表示沒有瀏覽器能夠包含用戶想要的全部功能,可擴展性就是答案。編程
HotJava瀏覽器首先展現了Java編程語言和平臺的有趣屬性,使在HTML頁面中嵌入程序成爲可能,程序與它們出現的HTML頁面一塊兒透明地下載到瀏覽器中,在被瀏覽器接受以前,會仔細檢查程序以確保它們是安全的。與HTML頁面同樣,編譯的程序與網絡和主機無關,程序的行爲方式相同,不管它們來自何處,或者它們被裝入和運行的機器類型。瀏覽器
包含Java平臺的Web瀏覽器再也不侷限於預約的一組功能,包含動態內容的網頁的訪問者能夠確保他們的機器不會被該內容損壞,程序員能夠編寫程序一次,它將在任何提供Java運行時環境的機器上運行。安全
Java虛擬機是Java平臺的基石,它是該技術的組成部分,負責其硬件和操做系統的獨立性,其編譯的代碼很小以及保護用戶免受惡意程序攻擊的能力。服務器
Java虛擬機是一種抽象計算機,像真正的計算機同樣,它有一個指令集並在運行時操做各類內存區域,使用虛擬機實現編程語言是至關廣泛的,最著名的虛擬機多是UCSD Pascal的P-Code機器。網絡
在Sun Microsystems,Inc.完成的Java虛擬機的第一個原型實現模擬了由相似於當代我的數字助理(PDA)的手持設備託管的軟件中的Java虛擬機指令集。Oracle當前的實現模擬在移動、桌面和服務器設備上的Java虛擬機,但Java虛擬機不承擔任何特定的實現技術、主機硬件或主機操做系統,它自己並無被解釋,但也能夠經過將其指令集編譯爲硅CPU來實現,它也能夠用微代碼實現或直接用硅實現。架構
Java虛擬機不知道Java編程語言,只知道特定的二進制格式,即class
文件格式,class
文件包含Java虛擬機指令(或字節碼)和符號表,以及其餘輔助信息。併發
出於安全考慮,Java虛擬機對class
文件中的代碼施加了強大的語法和結構約束,可是,任何具備能夠用有效class
文件表示的功能的語言均可以由Java虛擬機託管,由通用的、與機器無關的平臺吸引,其餘語言的實現者能夠將Java虛擬機做爲其語言的交付工具。編程語言
此處指定的Java虛擬機與Java SE 11平臺兼容,並支持Java語言規範Java SE 11 Edition中指定的Java編程語言。
第2章概述了Java虛擬機架構。
第3章介紹用Java編程語言編寫的代碼編譯成Java虛擬機指令集。
第4章說明了class
文件格式,這是一種獨立於硬件和操做系統的二進制格式,用於表示已編譯的類和接口。
第5章說明了Java虛擬機的啓動以及類和接口的加載、連接和初始化。
第6章說明了Java虛擬機的指令集,按字母順序顯示操做碼助記符。
第7章給出了一個由操做碼值索引的Java虛擬機操做碼助記符表。
在Java®虛擬機規範的第二版中,第2章概述了Java編程語言,該語言旨在支持Java虛擬機的規範,但它自己並非規範的一部分。在Java虛擬機規範Java SE 11 Edition中,有關Java編程語言的信息,請參閱Java語言規範Java SE 11 Edition。
在Java®虛擬機規範的第二版中,第8章詳細介紹瞭解釋Java虛擬機線程與共享主內存交互的低級別操做,在Java虛擬機規範Java SE 11 Edition中,讀者能夠參考Java語言規範的第17章,Java SE 11 Edition,瞭解有關線程和鎖的信息,第17章反映了JSR 133專家組製做的Java內存模型和線程規範。
在整個規範中,引用了從Java SE Platform API中提取的類和接口,每當使用單個標識符N
引用類或接口(除了在示例中聲明的那些以外),預期的引用是包java.lang
中名爲N
的類或接口,使用java.lang
之外的包中的類或接口的徹底限定名。
每當引用在包java
或其任何子包中聲明的類或接口時,預期的引用都是由引導類加載器加載的類或接口。
每當引用名爲java
的包的子包時,預期的引用就是由引導類加載器肯定的子包。