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