Java 11是Java8后的首個長期支持版本。按照 Oracle 公布的支持路線圖,Java 11 將會獲得 Oracle 提供的長期支持服務,直至2026年9月。
按照官方的說法,新的發布周期會嚴格遵循時間點,將於每年的3月份和9月份發布。所以 Java 11 的版本號是 18.9(LTS)。不過與 Java 9 和 Java 10 這兩個被稱為“功能性的版本”不同(兩者均只提供半年的技術支持),Java 11 不僅提供了長期支持服務,還將作為 Java 平台的參考實現。Oracle 直到2023年9月都會為 Java 11 提供技術支持,而補丁和安全警告等擴展支持將持續到2026年。新的長期支持版本每三年發布一次,根據后續的發布計划,下一個長期支持版 Java 17 將於2021年發布。
按照官方的說法,從 Java 11 開始,Oracle 將在 GPLv2 許可證下提供 JDK 版本,采用 Classpath Exception (GPLv2+CPE) 的方式,滿足了在商業許可下使用 Oracle JDK 作為 Oracle 產品或服務的一部分,或者不想使用開源軟件的需求。這種使用開源許可證和商業許可證的組合取代了歷史上的“BCL”許可證,該許可證具有免費和付費商業條款的組合。
Java 11 新特性
官網公開的 17 個 JEP(JDK Enhancement Proposal 特性增強提議):
181: Nest-Based Access Control(基於嵌套的訪問控制)
309: Dynamic Class-File Constants(動態的類文件常量)
315: Improve Aarch64 Intrinsics(改進 Aarch64 Intrinsics)
318: Epsilon: A No-Op Garbage Collector(Epsilon 垃圾回收器,又被稱為"No-Op(無操作)"回收器)
320: Remove the Java EE and CORBA Modules(移除 Java EE 和 CORBA 模塊,JavaFX 也已被移除)
321: HTTP Client (Standard)
323: Local-Variable Syntax for Lambda Parameters(用於 Lambda 參數的局部變量語法)
324: Key Agreement with Curve25519 and Curve448(采用 Curve25519 和 Curve448 算法實現的密鑰協議)
327: Unicode 10
328: Flight Recorder(飛行記錄儀)
329: ChaCha20 and Poly1305 Cryptographic Algorithms(實現 ChaCha20 和 Poly1305 加密算法)
330: Launch Single-File Source-Code Programs(啟動單個 Java 源代碼文件的程序)
331: Low-Overhead Heap Profiling(低開銷的堆分配采樣方法)
332: Transport Layer Security (TLS) 1.3(對 TLS 1.3 的支持)
333: ZGC: A Scalable Low-Latency Garbage Collector (Experimental)(ZGC:可伸縮的低延遲垃圾回收器,處於實驗性階段)
335: Deprecate the Nashorn JavaScript Engine(棄用 Nashorn JavaScript 引擎)
336: Deprecate the Pack200 Tools and API(棄用 Pack200 工具及其 API)