1. 程式人生 > >Java 平臺無關性的基石

Java 平臺無關性的基石

渴望 發展 應用 關鍵字 執行 變量 符號表 編寫 str

Java 在剛剛誕生之初就提出過一個非常著名的口號:“一次編寫,到處運行”, 這句話充分表達了軟件開發人員對沖破平臺界限的渴望

在競爭激烈的 IT 領域,各種不同的硬件體系結構和不同的操作系統肯定會長期並存發展。

“平臺無關性” 的理想最終實現在操作系統的應用層上: Sun 公司以及其他虛擬機提供商發布了許多可以運行在各種不同平臺上的虛擬機,這些虛擬機都可以載入和執行同一種平臺無關的字節碼,從而實現了程序的“一次編寫,到處運行”。

各種不同平臺的虛擬機與所有平臺都統一使用的程序存儲格式——字節碼是構成平臺無關性的基石。

實現語言無關性的基礎仍然是虛擬機和字節碼存儲格式。 Java虛擬機不和包含Java在內的任何語言綁定,它只和“Class 文件”這種特定的二進制文件格式所關聯,Class 文件中包含了 Java 虛擬機指令集和符號表以及若幹其他輔助信息。

基於安全方面的考慮,Java 虛擬機規範要求在 Class 文件中使用許多強制性的語法和結構化約束,但任何一門功能性語言都可以表示為一個能被 Java 虛擬機所接受的有效的 Class 文件。

作為一個通用的、機器無關的執行平臺,任何其他語言的實現者都可以將 Java 虛擬機作為語言的產品交付媒介。

Java 語言中的各種變量、關鍵字和運算符號的語義最終都是由多條字節碼命令組合而成的,因此字節碼命令所能提供的語義描述能力肯定會比 Java 語言更加強大。

因此,有一些 Java 語言本身無法有效支持的語言特性不代表字節碼本身無法有效支持,這也為其他語言實現一些有別於 Java 的語言特性提供了基礎。

Java 平臺無關性的基石