雖說是非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文章
596瀏覽量
27510 -
JAVA
+關注
關注
19文章
2975瀏覽量
105150 -
RISC-V
+關注
關注
45文章
2324瀏覽量
46597
原文標題:Java 19 已至,虛擬線程 = 王炸!!
文章出處:【微信號:CodeSheep,微信公眾號:CodeSheep】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
介紹一些比較重要的運放非理想參數
![介紹一些<b class='flag-5'>比較重要</b>的運放非理想參數](https://file.elecfans.com/web2/M00/8C/C7/pYYBAGPbUCKAaabZAAAsQXOsEOk358.png)
JDK 15安裝步驟及新特性
STM32比較重要的頭文件
講解S3X2440部分比較重要的啟動程序
畢昇JDK 8 Dynamic CDS 特性介紹
Delphi中比較GUID是否相等
FPGA中幾個比較重要的基本模塊是什么
![FPGA<b class='flag-5'>中</b>幾個<b class='flag-5'>比較重要</b>的基本模塊是什么](https://file.elecfans.com/web1/M00/A8/6C/o4YBAF2NuISALVmuAAK7WglFf1I119.png)
電源測試中比較重要的有哪些項目
![電源測試<b class='flag-5'>中比較重要</b>的有哪些項目](https://file.elecfans.com/web2/M00/65/71/pYYBAGMIr6WAafFDAADQ4c9BeOY232.jpg)
JDK 19 / Java 19正式發布 虛擬線程來了
JDK11升級JDK17最全實踐
![<b class='flag-5'>JDK</b>11升級<b class='flag-5'>JDK</b>17最全實踐](https://file1.elecfans.com/web2/M00/AE/C9/wKgaomVW0seAAPXDAABGJ75w4kI369.png)
weblogic修改jdk路徑
如何在eclipse配置jdk環境
JDK11升級JDK17最全實踐干貨來了
![<b class='flag-5'>JDK</b>11升級<b class='flag-5'>JDK</b>17最全實踐干貨來了](https://file1.elecfans.com//web2/M00/F2/CF/wKgZomZ6aKOAD22HAAi5bgySCzk303.png)
評論