Java虛擬機規範-第1章簡介

第1章簡介

1.1。一點歷史

在的Java ®編程語言是通用的,併發的,面向對象的語言。它的語法類似於C和C ++,但是省略了許多使C和C ++複雜,混亂和不安全的功能。最初開發Java平臺是爲了解決爲網絡消費設備構建軟件的問題。它旨在支持多種主機體系結構並允許安全交付軟件組件。爲了滿足這些要求,編譯後的代碼必須能夠在跨網絡的傳輸中倖存下來,可以在任何客戶端上運行,並確保客戶端可以安全運行。

萬維網的普及使這些屬性更加有趣。Web瀏覽器使數以百萬計的人能夠以簡單的方式瀏覽Internet並訪問媒體豐富的內容。最終,有了一種媒介,無論您使用的是什麼機器,無論它是連接到快速網絡還是慢速調制解調器,您所聽到和聽到的內容基本上都是相同的。

Web愛好者很快發現Web的HTML文檔格式所支持的內容太有限了。HTML擴展(例如表單)僅強調了這些限制,同時明確指出沒有瀏覽器可以包含用戶想要的所有功能。擴展性就是答案。

HotJava瀏覽器首先通過將程序嵌入HTML頁面來展示Java編程語言和平臺的有趣特性。程序與出現的HTML頁面一起透明地下載到瀏覽器中。在被瀏覽器接受之前,應仔細檢查程序以確保其安全。像HTML頁面一樣,編譯程序與網絡和主機無關。這些程序的行爲方式相同,無論它們來自何處或要加載到哪種計算機上並在其上運行。

包含Java平臺的Web瀏覽器不再侷限於一組預定功能。可以確保包含動態內容的網頁的訪問者可以確保其計算機不會被該內容損壞。程序員可以編寫一次程序,並且該程序可以在提供Java運行時環境的任何計算機上運行。

1.2。Java虛擬機

Java虛擬機是Java平臺的基石。它是技術的組成部分,負責硬件和操作系統的獨立性,已編譯代碼的小尺寸以及保護用戶免受惡意程序攻擊的能力。

Java虛擬機是抽象的計算機。像真正的計算機一樣,它具有指令集並在運行時操作各種內存區域。使用虛擬機實現編程語言是相當普遍的。最知名的虛擬機可能是UCSD Pascal的P代碼計算機。

由Sun Microsystems,Inc.完成的Java虛擬機的第一個原型實現模擬了由類似於現代個人數字助理(PDA)的手持設備託管的軟件中的Java虛擬機指令集。Oracle當前的實現在移動設備,桌面設備和服務器設備上模擬Java虛擬機,但是Java虛擬機不採用任何特定的實現技術,主機硬件或主機操作系統。它不是固有解釋的,但是也可以通過將其指令集編譯爲硅CPU的指令集來實現。也可以用微碼或直接在硅中實現。

Java虛擬機對Java編程語言一無所知,僅對特定的二進制格式(class文件格式)一無所知。一個class文件包含的Java虛擬機指令(或字節碼)和符號表,以及其它輔助信息。

爲了安全起見,Java虛擬機對class文件中的代碼施加了嚴格的語法和結構約束。但是,classJava虛擬機可以託管任何具有可用有效文件表示的功能的語言。受通用的獨立於機器的平臺的吸引,其他語言的實現者可以將Java虛擬機作爲其語言的交付工具。

此處指定的Java虛擬機與Java SE 8平臺兼容,並且支持Java語言規範Java SE 8 Edition中指定的Java編程語言。

1.3。規範的組織

第2章概述了Java虛擬機體系結構。

第3章將用Java編程語言編寫的代碼編譯引入Java虛擬機的指令集中。

第4章指定了 class文件格式,即與硬件和操作系統無關的二進制格式,用於表示已編譯的類和接口。

第5章指定Java虛擬機的啓動以及類和接口的加載,鏈接和初始化。

第6章指定Java虛擬機的指令集,以操作碼助記符的字母順序顯示指令。

第7章提供了按操作碼值索引的Java虛擬機操作碼助記符表。

在第二版 中的Java ®虛擬機規範,第二章給了這是旨在支持Java虛擬機的規範的Java編程語言的一個概述,但本身不是規範的一部分。在Java虛擬機規範Java SE 8版中,讀者可以參考 Java語言規範Java SE 8版中有關Java編程語言的信息。格式的引用:(JLS§xy)指出了在哪裏需要這樣做。

在的第二版 的爪哇®虛擬機規範,第8章詳述,與共享主存儲器解釋Java虛擬機線程的相互作用的低級別的操作。在Java虛擬機規範Java SE 8版中,讀者可以參考Java語言規範Java SE 8版的第17章 以獲取有關線程和鎖的信息。第17章反映了JSR 133專家組製作的Java內存模型和線程規範

1.4。符號

在整個規範中,我們指的是從Java SE平臺API提取的類和接口。每當我們使用單個標識符N引用類或接口(在示例中聲明的對象除外)時,預期的引用就是對包中 名爲N的類或接口的引用java.lang。對於非包中的類或接口,我們使用完全限定名稱java.lang

每當我們引用包java 或其任何子包中聲明的類或接口時,預期的引用就是由引導類加載器(第5.3.1節)加載的類或接口。

每當我們引用名爲的包的子包時java,預期的引用就是由引導類加載器確定的那個子包。

本規範中字體的使用如下:

  • 一個fixed width字體用於Java虛擬機的數據類型,異常錯誤,class文件結構,Prolog的代碼和Java代碼片斷。

  • 斜體用於Java虛擬機的“彙編語言”,其操作碼和操作數,以及Java虛擬機的運行時數據區域中的項目。它也用於引入新術語並僅用於強調。

爲了闡明規範而設計的非規範性信息以較小的縮進文本形式給出。

這是非規範性信息。它提供了直覺,理由,建議,示例等。

1.5。回饋

請讀者在報告技術錯誤和含糊不清的的Java ®虛擬機規範 來[email protected]

有關class通過javac(Java編程語言的參考編譯器)生成和操作文件的問題,可以發送給[email protected]

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章