歡迎光臨
每天分享高質量文章

5分鐘瞭解Java 12 八大新特性

導讀:Java 12 終於釋出了,我們一起來看一看 Java 12 中的新特性。透過本文可以在5分鐘內快速瞭解 Java 12 新特性。

1 Switch 運算式

使用Java 12,switch不僅可以作為陳述句也可以作為運算式。 無論作為陳述句或者作為運算式,switch都可以使用傳統/簡化的作用域和控制流行為。 這將有助於簡化程式碼,併為在switch中使用樣式匹配鋪平道路。

Java開發人員正在增強Java程式語言,以使用樣式匹配來解決當前switch陳述句的幾個問題。 這包括:switch塊的預設控制流行為,switch塊預設作用域(被視為單個作用域的塊)和switch僅作為陳述句。

在Java 11中,switch陳述句追隨C和C++,預設情況下使用fall-through語意。 雖然傳統的控制流程在編寫低階程式碼時很有用,但隨著switch在更高階別的環境中採用,易出錯會蓋過其靈活性。

Java 11 

Java 12

2 預設CDS歸檔

透過在64位平臺上的預設類串列的幫助下生成CDS歸檔來改進JDK構建過程,從而有效地消除了執行java -Xshare:dump。 此功能的標的包括:1。)改進開箱即用的啟動時間,以及2.)擺脫使用-Xshare:dump。

3 Shenandoah GC

Shenandoah是一種垃圾收集(GC)演演算法,旨在保證低延遲(10 – 500 ms的下限)。 它透過在執行Java工作執行緒的同時執行GC操作減少GC暫停時間。 使用Shenandoah,暫停時間不依賴於堆的大小。 這意味著無論堆的大小如何,暫停時間都是差不多的。

這是一個實驗性功能,不包含在預設(Oracle)的OpenJDK版本中。

4 JMH 基準測試

此功能為JDK原始碼添加了一套微基準測試(大約100個),簡化了現有微基準測試的執行和新基準測試的建立過程。 它基於Java Microbenchmark Harness(JMH)並支援JMH更新。

此功能使開發人員可以輕鬆執行當前的微基準測試併為JDK原始碼新增新的微基準測試。 可以基於Java Microbenchmark Harness(JMH)輕鬆測試JDK效能。 它將支援JMH更新,併在套件中包含一組(約100個)基準測試。

5 JVM 常量 API 

JEP 334引入了一個API,用於建模關鍵類檔案和執行時artifacts,例如常量池。 此API將包括ClassDesc,MethodTypeDesc,MethodHandleDesc和DynamicConstantDesc等類。此 API 對於操作類和方法的工具很有幫助。

6 G1的可中斷 mixed GC

此功能透過將Mixed GC集拆分為強制部分和可選部分,使G1垃圾收集器更有效地中止垃圾收集過程。透過允許垃圾收集過程優先處理強制集,g1可以更多滿足滿足暫停時間標的。

G1是一個垃圾收集器,設計用於具有大量記憶體的多處理器機器。由於它提高了效能效率,g1垃圾收集器最終將取代cms垃圾收集器。

G1垃圾收集器的主要標的之一是滿足使用者設定的暫停時間。G1採用一個分析引擎來選擇在收集期間要處理的工作量。此選擇過程的結果是一組稱為GC集的區域。一旦GC集建立並且GC已經開始,那麼G1就無法停止。

如果G1發現GC集選擇選擇了錯誤的區域,它會將GC區域的拆分為兩部分(強制部分和可選部分)來切換到處理Mix GC的增量樣式。如果未達到暫停時間標的,則停止對可選部分的垃圾收集。

7 G1歸還不使用的記憶體

此功能的主要標的是改進G1垃圾收集器,以便在不活動時將Java堆記憶體歸還給作業系統。 為實現此標的,G1將在低應用程式活動期間定期生成或持續迴圈檢查完整的Java堆使用情況。

這將立即歸還未使用的部分Java堆記憶體給作業系統。 使用者可以選擇執行FULL GC以最大化傳回的記憶體量。

8 移除多餘ARM64實現

Java 12將只有一個ARM 64位實現(aarch64)。 標的是刪除所有與arm64實現相關的程式碼,同時保留32位ARM埠和64位aarch64實現。

這將把重點轉移到單個64位ARM實現,並消除維護兩個實現所需的重覆工作。 當前的JDK 11實現中有兩個64位ARM實現。


原文地址:

https://stackify.com/java-12-new-features-and-enhancements-developers-should-know/

本文作者JAZMINE LLAGUNO,由方圓翻譯。轉載本文請註明出處,歡迎更多小夥伴加入翻譯及投稿文章的行列,詳情請戳公眾號選單「聯絡我們」。GIAC全球網際網路架構大會深圳站將於2019年6月舉行,屆時將有Java等專題深入探討相關話題,敬請期待。

參考閱讀:

技術原創及架構實踐文章,歡迎透過公眾號選單「聯絡我們」進行投稿。轉載請註明來自高可用架構「ArchNotes」微信公眾號及包含以下二維碼。


高可用架構

改變網際網路的構建方式


長按二維碼 關註「高可用架構」公眾號