雖說是非LTS版,但是也帶來了一些新特性,尤其像虛擬線程的加持等,也在網(wǎng)絡(luò)上引起了一些相關(guān)的討論,雖說類似的特性在有些語言里其實(shí)早就有了。
新的JDK 19包含如下7個(gè)新的特性:
JEP 405: Record Patterns(Record模式)
JEP 422: Linux/RISC-V Port(Linux/RISC-V移植)
JEP 424: Foreign Function & Memory API(外部函數(shù)和內(nèi)存API)
JEP 425: Virtual Threads(虛擬線程)
JEP 426: Vector API(向量API)
JEP 427: Pattern Matching for switch(switch模式匹配)
JEP 428: Structured Concurrency(結(jié)構(gòu)化并發(fā))
405:記錄模式(預(yù)覽階段)
Record Patterns可對(duì)Record的值進(jìn)行解構(gòu),通過嵌套R(shí)ecord模式和Type模式能夠?qū)崿F(xiàn)強(qiáng)大的、聲明性的、可組合的數(shù)據(jù)導(dǎo)航和處理形式。
該特性目前處于預(yù)覽階段。
424: 外部函數(shù)和內(nèi)存API(預(yù)覽階段)
Java程序可以通過該API與Java運(yùn)行時(shí)之外的代碼和數(shù)據(jù)進(jìn)行互操作。
通過高效地調(diào)用外部函數(shù)(即JVM之外的代碼)和安全地訪問外部?jī)?nèi)存(即不受JVM 管理的內(nèi)存),該API使Java程序能夠調(diào)用本機(jī)庫(kù)并處理本機(jī)數(shù)據(jù),而不會(huì)像JNI那樣危險(xiǎn)和脆弱。
一句話總結(jié)就是該特性讓Java調(diào)用普通native代碼更加方便和高效。
425:虛擬線程(預(yù)覽階段)
新版本同樣為Java引入了虛擬線程,虛擬線程是JDK實(shí)現(xiàn)的輕量級(jí)線程,它在其他多線程語言中已經(jīng)被引入并且也證實(shí)了十分有用,比如Go中的Goroutine、Erlang中的進(jìn)程等等。
虛擬線程可以避免上下文切換的額外耗費(fèi),兼顧了多線程的優(yōu)點(diǎn),簡(jiǎn)化了高并發(fā)程序的復(fù)雜,可以有效減少編寫、維護(hù)和觀察高吞吐量并發(fā)應(yīng)用程序的工作量。
426:向量API(第四次孵化)
向量計(jì)算是由對(duì)向量的一系列操作而組成。向量API用來表達(dá)向量計(jì)算,而該計(jì)算可以在運(yùn)行時(shí)可靠地編譯為支持的CPU架構(gòu)上的最佳向量指令,從而實(shí)現(xiàn)優(yōu)于等效標(biāo)量計(jì)算的性能。
向量API的目標(biāo)是為用戶提供簡(jiǎn)潔易用且與平臺(tái)無關(guān)的表達(dá)范圍廣泛的向量計(jì)算。
427:switch模式匹配(第三次預(yù)覽)
switch模式匹配最早曾在Java 17中就以預(yù)覽功能的形式引入,即支持用switch表達(dá)式和語句的模式匹配以及對(duì)模式語言的擴(kuò)展來增強(qiáng) Java 編程語言。
更通俗一些說,也就是支持將模式匹配擴(kuò)展到switch中,允許針對(duì)一些模式測(cè)試表達(dá)式,這樣就可以簡(jiǎn)明而安全地表達(dá)復(fù)雜的面向數(shù)據(jù)的查詢。
428:結(jié)構(gòu)化并發(fā)(孵化階段)
JDK 19引入了結(jié)構(gòu)化并發(fā),這是一種多線程編程方法,目的是為了通過結(jié)構(gòu)化并發(fā)API來簡(jiǎn)化多線程編程,但需要注意的是這并不是為了取代java.util.concurrent,同時(shí)該功能目前也處于孵化階段。
結(jié)構(gòu)化并發(fā)將不同線程中運(yùn)行的多個(gè)任務(wù)視為單個(gè)工作單元,從而簡(jiǎn)化錯(cuò)誤處理、提高可靠性并增強(qiáng)可觀察性。也就是說,結(jié)構(gòu)化并發(fā)保留了單線程代碼的可讀性、可維護(hù)性和可觀察性。
以上就是此次JDK更新的一些簡(jiǎn)要總結(jié)和梳理,可以看到其中大部分都是孵化特性和預(yù)覽特性,看來很多特性功能都得在后面發(fā)布的LTS版中才能正式轉(zhuǎn)正了。
審核編輯:劉清
-
Linux系統(tǒng)
+關(guān)注
關(guān)注
4文章
596瀏覽量
27524 -
JAVA
+關(guān)注
關(guān)注
19文章
2976瀏覽量
105212 -
RISC-V
+關(guān)注
關(guān)注
45文章
2328瀏覽量
46672
原文標(biāo)題:Java 19 已至,虛擬線程 = 王炸??!
文章出處:【微信號(hào):CodeSheep,微信公眾號(hào):CodeSheep】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論