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