Sun Microsystems 於 1996 年發布 Java 1.0。主要相容性里程碑包括 J2SE 1.2(1998 年)、Java 5(2004 年,泛型與註釋)、Java 8(2014 年,lambda)以及 Java 9(2017 年,模組)。Oracle 於 2010 年收購 Sun。OpenJDK 是 Java SE 的開放原始碼參考實作,HotSpot 是其主要 JVM 實作;Oracle JDK 與許多廠商發行版都是 OpenJDK 的建置版本,但支援與封裝政策各不相同。自 Java 10 起,功能版本遵循六個月的發布週期,而選定版本會獲得廠商較長期的支援。
規格與治理 #
Java Community Process(JCP)透過 Java Specification Request(JSR)標準化 Java SE。JSR 具有規格負責人與專家小組;執行委員會核准定義的里程碑,計畫管理辦公室則管理流程。JCP 與 OpenJDK 開發彼此獨立。
OpenJDK 的 JDK Enhancement Proposal(JEP)流程會記錄並引導重要的 JDK 工作。JEP 不會自動成為 Java SE 標準。當 OpenJDK 變更修改標準化 API 時,相關的 JSR 流程會提供規格工作。JEP 1 定義這項關係。
平台界線 #
Java 語言由 JLS 規格化。JVM 指令集、類別檔案格式與執行模型由 JVMS 規格化。Java SE API 規格定義函式庫契約。JDK 是包含 JVM、標準函式庫與 javac、jar、jlink、javadoc 等開發工具的發行版;它是實作與工具鏈,而不是語言或 JVM 的同義詞。
部署細節 #
啟動器會將以 * 結尾的類別路徑元素展開為該目錄中的 JAR 檔案。萬用字元不會遞迴處理,只會比對封存檔而非任意類別目錄,且順序取決於平台;需要固定順序時必須使用明確路徑。
多版本 JAR 會在其資訊清單中包含 Multi-Release: true,並能將特定版本的類別檔案放在 META-INF/versions/N/ 下。執行環境會選取不高於自身功能版本的最高適用版本,否則使用根項目。工具必須保留資訊清單並驗證每個版本項目,因為 MR-JAR 是具有多個執行環境檢視的單一構件。
在 Java 術語中,**field(欄位)**是在類別或介面中宣告的變數。「data member(資料成員)」是非正式說法,可能含糊地包括欄位、屬性與其他狀態。使用語言建構的術語「field」,討論設計時則明確命名相依性或封裝狀態。
評論
在 GitHub 上閱讀或評論(發表評論需要登入)