java开发指南_Java 12新功能完整指南
java開發指南
六個月飛得如此之快,是時候再次仔細研究一下即將發布的新JDK版本。 讓我們滿足Java 12及其向開發人員介紹的功能。
自Oracle推出加速六個月的發布節奏以來已經有一段時間了,要跟上每個版本及其添加到表中的功能越來越難了。
從好的方面來看,這種快速的發布速度也意味著Java引入了許多新功能供我們利用。 這意味著我們需要一直關注以查看添加了哪些令人興奮的功能。 現在該看一下Java 12的全部含義了。
Java 12的新功能
Shenandoah:低暫停時間的垃圾收集器
此實驗功能希望添加一個名為Shenandoah的新垃圾收集(GC)算法,該算法是為更喜歡響應性和可預測的短暫停頓的應用程序而設計的。
此功能引入了一種算法,該算法足夠有效,以允許程序在可用內存中運行,但也進行了優化,以使中斷正在運行的程序的時間不會超過幾毫秒。
Shenandoah算法通過與正在運行的Java線程同時進行疏散工作,將有助于減少GC暫停時間。 它以并發的CPU周期和空間為代價來交換暫停時間,并且暫停時間與堆大小無關,這意味著無論堆是200 MB還是200 GB,您都將具有相同的一致暫停時間。
Oracle確實注意到這并不是要解決所有的JVM暫停問題,因為這些問題可能是由于安全時間(TTSP)問題甚至是監視應用程序膨脹引起的。 對于這些情況,該算法將不相關。
切換表達式
該JEP旨在擴展switch語句; 多向分支語句,它提供了一種基于表達式的值將執行分派到代碼內不同部分的簡便方法。
當前處于預覽模式的此擴展使我們能夠將switch用作語句或表達式,以簡化編碼并為另一個即將到來的JEP(Pattern Matching for instanceof( 305 ))做準備。
為了理解其含義,Oracle共享了以下示例。 不必要的冗長和視覺上嘈雜的代碼通常掩蓋了難以調試的錯誤,其中丟失的break語句表明發生了意外掉線:
標記為“ case L->”的新開關標簽將表示僅在標簽匹配時才執行箭頭右側的代碼。 因此,現在可以編寫之前的代碼:
G1改進
Java 12附帶了2個對默認垃圾收集器G1的更新。 第一個標題為“ G1的可終止混合集合 ”有助于使G1混合集合可能超出暫停目標而中止。
當前,G1使用分析引擎來選擇收集期間要完成的工作量,一旦確定了收集集并開始了收集,則G1必須收集收集集所有區域中的所有活動對象而無需停止。 這導致垃圾收集器超出了暫停時間目標,這是JEP旨在解決的問題。
G1的另一個功能還著重于提高垃圾收集器的性能,特別是返回未使用的已提交內存。
當前版本的G1僅在完整GC或并發周期中從Java堆返回內存。 由于G1努力避免完全避免出現完整的GC,并且僅基于Java堆占用和分配活動觸發并發周期,因此在很多情況下,除非強制從外部執行,否則它不會返回Java堆內存。
那就是“ 從G1Swift返回未使用的承諾內存 ”的地方,著重于通過在G1空閑時自動將Java堆內存返回到操作系統來增強垃圾收集器。
還有什么?
Java 12中引入的其他功能包括:
- Microbenchmark Suite –向JDK源代碼添加基本的微基準套件,使開發人員可以輕松地運行現有的微基準并創建新的微基準。
- JVM常量API –引入了一個API,以對關鍵類文件和運行時工件的名義描述進行建模,例如可從常量池中加載的常量。 該API對于操作Java類和方法的工具很有用。
- 默認的CDS存檔 -增強了JDK生成過程,以生成類數據共享(CDS)存檔并縮短了現成的啟動時間。
這值得么?
通過不斷的更新,我們看到了越來越多的功能引入該語言-但是開發人員對最近的更改有何感想? 在大型系統和企業中升級和實現新的語言功能并不總是那么容易,更不用說與遺留代碼,團隊的本地技巧和黑客建立兼容性。
確實,當我們冷漠地審視最新的Java版本時,我們發現頻繁發布并不意味著最新版本是最受歡迎的版本。 通過查看Google趨勢,我們可以發現事實并非如此:
盡管Java 8是家族中“最古老”的成員,但不可否認它的流行。 Java 11獲得了一定的吸引力,這可能是因為Java 11是最新的長期受支持的版本,而Java 12在列表的底部。 它是一個新版本,因此我們愿意給它一些時間,但是從當前狀態來看,它似乎變化不大。
這是否意味著Oracle應該停止六個月的節奏? 好吧,不。 做出此決定是為了使Oracle比以前更快地發布“較小”的功能,從而幫助Java與市場上的其他語言保持一致。
如果您詢問我們,此更改只會幫助Java保持其功能和普及性,無論是對于編程世界中的年輕開發人員還是即將來臨的開發人員和資深人員。 現在我們唯一的問題是……Java 13將引入什么,這些功能將如何改變我們的編碼方式?
翻譯自: https://www.javacodegeeks.com/2019/04/complete-guide-java-12-new-features.html
java開發指南
總結
以上是生活随笔為你收集整理的java开发指南_Java 12新功能完整指南的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 最简单的电子发票打印方法电子普通发票怎样
- 下一篇: 在Selenium中按TagName定位