甲骨文公司公布了第一批針對 Java9 的增強提議(也被稱為 JEPs),這些提議中的內(nèi)容將會作為 Java 9 需要實現(xiàn)的新特性。
Java 增強提議是一種新的流程,這種流程允許開發(fā)和探索出針對 Java 語言以及虛擬機的一些特性,而不需要經(jīng)歷一個完整的規(guī)范定義流程(JSR)。這也就意味著 Java 增強提議(JEPs)能夠包含的特性范圍可以更小,更具有針對性,還可以解決針對 OpenJDK 實現(xiàn)中的特定問題。成功的 Java 增強提議(JEPs)隨后可以被轉(zhuǎn)換為標準化的請求(或者打包到現(xiàn)有 Java 標準,作為標準化發(fā)布功能點的一部分)。
Java9 的初始特性集是相對比較小,而且相對保守的,但距離 Java9 的發(fā)布還有兩年多的時間,因此在 GA 版本發(fā)布之前還會有很多附加的特性被添加進來。
宣布的 Java 增強提議(JEPs)中包含三個新的 API: 用來和操作系統(tǒng)中的非 Java 進程交互的進程API 的更新,包含HTTP/2 支持的新的HTTP 客戶端,以及輕量級的JSON API?。輕量級的JSON API 將會基于JSR 353 中包含的已經(jīng)標準化的JSON 支持功能進行構(gòu)建。
也還有三個和Java 虛擬機(JVM)/ 性能相關(guān)的特性被公布出來:當線程競爭獲取對象鎖時,為獲得更好的性能而改善鎖競爭,?JIT 編譯器的代碼緩存分段(在大型應用上提供更好的 JIT 性能),以及進一步開發(fā)“智能”的Java 編譯器,名稱為sjavac,該編譯器能夠在多個其他特性的配合下實現(xiàn)并行和共享編譯(?http://openjdk.java.net/jeps/199?)。
最后,一個曾經(jīng)承諾過的在 JEP201 中非常吸引人的特性 -模塊化源代碼。這個特性并不是,至少目前,項目名稱為Jigsaw(最初定位為Java 8 的一部分)所提供的模塊化解決方案中的內(nèi)容。取而代之的是,這是一個為清理OpenJDK 的嘗試,在構(gòu)建JDK 本身的同時,通過創(chuàng)建和執(zhí)行模塊邊界來奠定模塊化的基礎(chǔ)。雖然模塊系統(tǒng)對于開發(fā)者和運行時是不可見的,但這是朝著完全模塊化方向的第一步。
其他正在探索Java 演進的項目包括項目Valhalla?,和?Java 本地運行時(JNR)項目。Java 本地運行時項目由 Charles Nutter (JRuby) 創(chuàng)建,主要用來檢修 Java 原來的本地接口(JNI)。目前,還不知道上述兩個項目是否發(fā)布能夠成為 Java 9 部分特性的技術(shù),但是這兩個項目所針對的目標都是 Java 開發(fā)者非常感興趣的領(lǐng)域。