Java20于2023年3月21日由甲骨文發布,是標準Java的最新升級。JDK20中的版本要么是尚未完全成熟的孵化器功能,要么是各種功能的預覽版,包括虛擬線程和結構化并發。
盡管這個版本沒有重大更新,但我們希望Java用戶繼續從遺留Java版本過渡到Java生態系統中的新技術。想要學習java技術的同學,可以考慮參加Java培訓,全面系統的理論知識和實操項目學習,讓你快速學有所成。
Java20特性
該短期Java版本將在2022年9月20日發布后的六個月內得到支持JDK19。我們預計Java21的長期支持(LTS)版本將于9月發布,在多年支持的基礎上提供更好的更新。在此之前,讓我們深入了解JDK20的新功能。
Java20發布版已經正式標記了7個特性,包括:虛擬線程、vectorAPI提議、結構化并發、作用域值、外部函數和內存API、記錄模式、switch語句和表達式的模式匹配,以及vectorAPI提議。
虛擬線程
虛擬線程是結構化并發的先決條件。自JDK19的第一個預覽版以來,已經做了一些小的改動,包括少量的API更改,以及對ThreadGroup的降級。現在,在第二個預覽階段,這些輕量級線程減少了編寫和維護并發應用程序的工作量。據Oracle稱,這將從根本上改變Java應用程序的擴展方式。參加java培訓是入門學習的最佳選擇,有經驗豐富的專業老師面授指導教學,通過理論結合實戰的方式教授java基礎知識,幫助你更好的理解與運用java。
VectorAPI提案
以前,VectorAPI是在JDK16,JDK17,JDK18,以及JDK19。這個新的API提議是在Java20發布前幾周作為重新孵化而添加的,相對于JDK19沒有任何變化。該實現包括少量的錯誤修復和性能增強,包括表達向量計算的能力,這些向量計算在運行時可靠地編譯,并在受支持的CPU上充當最佳向量指令。
結構化并發
在JDK19版中,結構化并發作為一個孵化API,通過將不同線程中運行的多個任務視為一個工作單元來工作。這有助于簡化錯誤處理和取消,從而提高可靠性和可觀察性。重新孵化的唯一變化是StructuredTaskScope被更新以支持在任務范圍內創建的線程對范圍值的繼承。
范圍值
作用域值使不可變數據能夠在線程間和線程內共享。它們優于線程局部變量,尤其是在使用大量虛擬線程時。這個孵化API的目標包括易用性、可理解性、健壯性和性能。參加以實戰項目為主要教學方法的java培訓,可以有效地縮短同企業具體用人需求之間的差距,快速提升自己。
外部函數和內存API
外部函數和內存(FFM)API結合了兩個早期的孵化API:外部內存訪問API和外部鏈接器API。FFMAPI首先在JDK17號孵化,然后在JDK18號再次孵化;然后在JDK19號進行了首次預演。根據用戶反饋,JDK20重新預覽了FFMAPI,包括以下改進:
lMemorySegment和MemoryAddress抽象是統一的(內存地址現在由零長度內存段建模)
l密封的MemoryLayout增強了層次結構,以便于在中使用模式匹配switch表達和陳述
lMemorySession已經分裂成Arena和SegmentScope為了便于跨維護邊界共享段
記錄模式
記錄模式的第二次預覽的主要目標是擴展模式匹配,以表達更復雜、可組合的數據查詢,以及維護類型模式的語法或語義。自從JDK19版發布了這一語言特性的第一個預覽版以來,Java20中有了以下變化:增加了對一般記錄模式的類型參數推斷的支持,支持記錄模式出現在增強的for語句的頭中,以及取消了對命名記錄模式的支持。通過參加java培訓,學習最新java技能,可以讓你的實力一直保持領先水平,提升行業競爭力。
Switch語句和表達式的模式匹配
模式匹配最初是作為預覽版提出的,并于17年在JDK發布,18年在JDK提出了第二次預覽版并發布,19年在JDK提出了第三次預覽版并發布。這一語言特性在JDK20中的第四次預覽版使其能夠繼續與記錄模式預覽版一起發展,并包括圍繞switch語句的語法的基本更新。
關于Java20的最終想法
Java20的特性正朝著更加標準化的方向發展,這些特性是由各種Java研究項目決定的。雖然JDK20沒有引入任何新的JEP或重大更新,但它仍然有多個值得測試和留下反饋的預覽和孵化器功能。如果你也對java感興趣,不妨報個java培訓班,有專業講師面授指導教學,還有更加系統全面的課程,讓學習更科學,更有效。