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