去年十二月 JDK Beta版的發布 包含各種功能,其中發布了九個主要的新功能例如對Unicode 11的支持,這是一種新的x25519和x448編碼的私鑰格式,符合RFC 8410。
現在這個月甲骨文 宣布了JDK 12的第一個候選發布版本 現在可用於Linux,Mac OS和Windows平台下載。
為了識別可能存在的任何錯誤,已發布了此RC1版本r,以及社區在計劃於19月XNUMX日全面上市之前提出的各種建議。
Beta版本中引入的功能
- 雪蘭多: 這是一個短暫的垃圾收集器,它可以在運行中的Java線程之間同時撤離。 休息時間與堆大小無關,這意味著無論堆是200MB還是200GB,您都將具有相同的恆定暫停時間。
- 微基準測試: 是一種工具,可幫助開發人員使用JDK源代碼中的現有微標准或創建新的微標準。
- 開關表達式: 對切換指令進行一些更改以使其更加靈活。
非字符串文字-允許開發人員創建自己的文字並將其添加到語言中。 - JVM常量API: 允許您添加一個API,用於主類和類文件工件的名義描述,尤其是可以從常量組中加載的常量。
- 一個AArch64端口,而不是兩個: 它用於刪除與arm64port相關的所有源,以使所有貢獻者都能將精力集中在單個64位ARM實施上,並消除維護兩個端口所需的重複工作。
- 默認CDS存檔: 它用於增強JDK編譯過程,以使用64位平台上的默認類列表生成類數據交換文件(CDS)。
- G1可中止的混合收藏集: 允許您在項目集合超過暫停目標時取消它們。
- 立即從G1返回未使用的承諾內存: 改進了G1恢復,以便在空閒時可以將Java堆內存自動返回到操作系統。
原 串 文字 我不知道了 將包含在JDK 12中
在發布此版本幾天后,JEP宣布Beta版本中包含的功能之一可能不再受支持或不再集成到JDK 12中。。 這些是Raw String Literals,JEP指出,這些原始字符串尚未找到在JDK 12中實現此功能的正確方法。
“在審查收到的反饋時,我不再相信我們已經在復雜性和表達力之間找到了適當的平衡,或者我們已經充分探索了設計空間,以確保當前的設計是我們能做的最好的。
通過刪除它,我們可以繼續微調設計,探索更多選項,並找到實際上滿足預覽功能過程(JEP 12)要求的預覽,” Brian Goetz在電子郵件中寫道。
為了證明其合理性,JEP列出了刪除該文件的幾個原因。
例如: 字符串文字可以跨越多行,並且不能解釋轉義序列 as \ n對應於\ uXXXX格式的Unicode轉義,或者通常字符串文字不直接支持字符串插值的事實。
JEP列舉了許多其他問題 (例如,定界符)與OpenJDK網站上的原始字符串文字有關。
與同行相比,JEP指出僅舉幾例的C ++,Groovy,JavaScript,Python之類的編程語言僅使用原始字符串文字,因此將這些語言研究為定界符。
排出
對於那些有興趣測試JDK 12 RC的人 可以 訪問以下鏈接 在哪裡可以找到不同平台(Windows,Mac和Linux)的軟件包