Java 14 來了

頭圖 | CSDN 下載自視覺中國

出品 | CSDN(ID:CSDNnews)

近日,Oracle發佈了Java 14版,這是自從Java採用六個月一次的發佈週期之後的第五次發佈。

此次的發佈與之前的Java 11、12和13一樣,離不開OpenJDK社區無數個人和組織的無私奉獻。JDK 14修正了1986個JIRA問題,其中1458個來自Oracle的員工,另外528個來自獨立開發者和其他公司的開發者的提交。

Java 14 来了

Java 14的新功能和改動

Java 14提供了16個主要的改進和變更,包括兩個孵化器模塊、三個預覽特性、兩個棄用的功能以及兩個刪除的功能。其中“孵化器模塊”的意思是將尚未定稿的API和工具先交給開發者使用,以獲得反饋,並用這些反饋進一步改進Java平臺的質量。而“預覽特性”則是規格已經成型、實現已經確定,但還未最終定稿的功能。它們出現在Java中的目的是收集在真實世界中使用後的反饋信息,促進這些功能的最終定稿。

最後,一些功能通過“棄用”的方式從JDK中移除,也就是說,開發者不應該繼續使用這些功能,應當將使用這些功能的現有代碼遷移到其他API上。使用Java 9引入的jdeprscan工具可以對jar文件進行靜態掃描,找出使用了被棄用API的功能,從而方便開發者修改這些API調用。

JDK 14中的16項改動包括:

1.JEP 305:instanceof的模式匹配(預覽):該預覽功能給instanceof帶來了模式匹配功能。有了該功能,開發者就不需要寫大量的樣板代碼,從而提高生產力,還能實現更精確的類型安全的代碼。

2.JEP 343:打包工具(孵化器模塊):這個孵化器工具為開發者帶來了一種打包Java應用的方式,可以將Java應用打包成平臺所需的格式。開發者可以使用該工具,將現代應用程序的運行時和應用程序打包成單一的交付物。

3.JEP 345:G1的NUMA-Aware的內存分配:該功能改進了G1垃圾回收器在非一致內存訪問(NUMA)系統上的整體性能。

4.JEE 349:JFR事件流:該功能可以公開JDK Flight Recorder(JFR)的數據,用於持續監視,從而簡化各種工具和應用程序訪問JFR數據的方式。

5.JEP 352:非易失性映射字節緩衝區(Non-Volatile Mapped Byte Buffers):該特性為JDK增加了一種文件映射模式,用於訪問非易失性內存。非易失性內存能夠持久保持數據,因此可以利用該特性來改進性能。

6.JEP 358:非常實用的PointerException:該特性改進了PointerException的可讀性,能更準確地給出變量的信息。該特性可以幫助開發者提高生產力,以及改進各種開發工具和調試工具的質量。

7.JEP 359:Record(預覽特性):該預覽特性提供了一種更為緊湊的語法,用於定義淺層不可變的數據。值得一提的是,該特性可以大幅減少定義類似數據類型時所需的樣板代碼,但它的最終目的是提供更好的數據建模方式。

8.JEP 361:switch表達式:這是JDK 12和JDK 13中的預覽特性,現在是完整特性了。該特性規定,switch可以當作語句使用,也可以當作表達式使用。這可以簡化日常的編碼方式,也為模式匹配(JEP 305)特性打下了基礎。

9.JEP 362:棄用Solaris和SPARC的移植:該JEP中,Solaris和SPARC的移植版被棄用,以後將被移除。

10.JEP 363:刪除並行標記清理(Concurrent Mark Sweep,簡稱CMS)垃圾回收器:CMS垃圾回收器在兩年前JDK 6的時代就被棄用,建議轉用CMS的後繼者G1回收器,而現在G1回收器已成為默認回收器好幾年了。

11.JEP 364:macOS上的ZGC:儘管許多使用ZGC的用戶都使用類Linux的環境,但在Windows和macOS上,人們也需要ZGC進行開發和測試。許多桌面應用也可以從ZGC中得到好處。因此,ZGC特性被移植到了Windows和macOS上。

12.JEP 365:Windows上的ZGC:同上。

13.JEP 366:棄用ParallelScavenge和SerialOld GC組合:Parallel Scavenge和Serial Old垃圾回收算法的組合被棄用,這種組合極少被用到。

14.JEP 367:刪除Pack200工具和API:刪除了pack200和unpack200工具,以及java.util.jar包中的Pack200 API。這些工具和API從Java SE 11就被棄用了。

15.JEP 368:文本塊(預覽第二版):文本塊(Text Block)在Java 13中收到了第一版預覽的反饋(JEP 355)後,增加了兩個新的轉移序列,於Java 14中作為新的預覽特性出現。文本塊的好處包括:使用跨行文本簡化代碼編寫,增強Java程序中用字符串表示的其他語言的代碼的可讀性,解析新的轉義序列等等。

16.JEP 370:外部內存訪問API(Foreign-Memory Access API,孵化器模塊 ):該孵化器模塊引入了一個新的API,允許Java程序有效、安全地訪問位於Java堆之外的外部內存。

Java 14 来了

工具支持

下列IDE支持Java 14:

  • JetBrains IDEA

  • Apache NetBeans

  • Eclipse IDE

一些流行的自動化構建工具也正在積極準備支持Java 14,比如Apache Maven及其Gradle 6.3插件開始支持Java 14。

參考鏈接:https://blogs.oracle.com/java-platform-group/the-arrival-of-java-14


分享到:


相關文章: