0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內(nèi)不再提示

JDK19中比較重要的新特性

工程師鄧生 ? 來源:JavaGuide ? 作者:Guide ? 2022-09-26 09:22 ? 次閱讀

雖說是非LTS版,但是也帶來了一些新特性,尤其像虛擬線程的加持等,也在網(wǎng)絡上引起了一些相關的討論,雖說類似的特性在有些語言里其實早就有了。

920af3e8-3d37-11ed-9e49-dac502259ad0.png

新的JDK 19包含如下7個新的特性:

9236ff1a-3d37-11ed-9e49-dac502259ad0.png

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(結構化并發(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那樣危險和脆弱。

一句話總結就是該特性讓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:結構化并發(fā)(孵化階段)

JDK 19引入了結構化并發(fā),這是一種多線程編程方法,目的是為了通過結構化并發(fā)API來簡化多線程編程,但需要注意的是這并不是為了取代java.util.concurrent,同時該功能目前也處于孵化階段。

結構化并發(fā)將不同線程中運行的多個任務視為單個工作單元,從而簡化錯誤處理、提高可靠性并增強可觀察性。也就是說,結構化并發(fā)保留了單線程代碼的可讀性、可維護性和可觀察性。

以上就是此次JDK更新的一些簡要總結和梳理,可以看到其中大部分都是孵化特性和預覽特性,看來很多特性功能都得在后面發(fā)布的LTS版中才能正式轉(zhuǎn)正了。




審核編輯:劉清

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • Linux系統(tǒng)

    關注

    4

    文章

    588

    瀏覽量

    27271
  • JAVA
    +關注

    關注

    19

    文章

    2948

    瀏覽量

    104375
  • RISC-V
    +關注

    關注

    44

    文章

    2181

    瀏覽量

    45905

原文標題:Java 19 已至,虛擬線程 = 王炸!!

文章出處:【微信號:CodeSheep,微信公眾號:CodeSheep】歡迎添加關注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關推薦

    介紹一些比較重要的運放非理想?yún)?shù)

      除了共模放大系數(shù)以外,實際的運放還有很多非理想?yún)?shù),這個小節(jié)我們介紹一些比較重要的運放非理想?yún)?shù),這些非理想?yún)?shù)對運放電路是否能正確工作影響很大。 在設計電路時,必須考慮這些非理想?yún)?shù)的影響。
    發(fā)表于 02-02 13:55 ?1766次閱讀
    介紹一些<b class='flag-5'>比較重要</b>的運放非理想?yún)?shù)

    Kafka幾個比較重要的配置參數(shù)

    的配置已經(jīng)滿足了大部分的使用場景,本文分享總結了幾個比較重要的配置參數(shù),主要是針對producer端的配置,希望對你有所幫助。
    發(fā)表于 11-04 08:10

    JDK 15安裝步驟及新特性

    的方式格式化字符串,并讓開發(fā)人員在需要時可以控制格式?! ∥谋緣K最早準備在 JDK 12 添加的,但最終撤消了,然后在 JDK 13 作為預覽特性進行了添加,然后又在
    發(fā)表于 12-23 17:36

    STM32比較重要的頭文件

    /**這里是STM32比較重要的頭文件 我愛你的吻123原創(chuàng)講解 QQ:1746430162******************************************************************************* @file stm32f10x.hST 標準的頭文件* @aut
    發(fā)表于 08-05 06:46

    講解S3X2440部分比較重要的啟動程序

    S3X2440的ARM型號為ARM920,所以本文章講解部分比較重要的啟動程序(能夠保證能夠正常啟動),在以后的博客我會詳細對他進行分析。一個最簡單的start.S文件因該包括看門狗部分、時鐘初始化部分以及程序代碼定位部分。1、看門狗部分廢話不多說,直接開始配置,首先就
    發(fā)表于 02-17 07:12

    AI算法中比較常用的模型都有什么?

    AI算法中比較常用的模型都有什么
    發(fā)表于 08-27 09:19

    畢昇JDK 8 Dynamic CDS 特性介紹

    內(nèi)存的類到 JSA 文件。畢昇JDK 8 實現(xiàn)的 Dynamic CDS 特性相比之前的 AppCDS ,增加了 Custom ClassLoader 的支持,擴展了共享類的支持
    發(fā)表于 12-23 16:19

    Delphi中比較GUID是否相等

    Delphi中比較GUID是否相等,CompareMem(@guid1, @guid2, SizeOf(TGUID)),最開始時想到的方法
    發(fā)表于 06-22 10:11 ?1668次閱讀

    FPGA幾個比較重要的基本模塊是什么

    CLB(Configurable Logic Block):FPGA最基本的組成單元,可以實現(xiàn)基本的組合邏輯和時序電路。其中,LUT(Lookup Tables)是實現(xiàn)組合邏輯的部分,可以實現(xiàn)n個輸入的任意組合邏輯運算(不同型號的FPGA有所不同,下圖的例子為6個輸入)。
    發(fā)表于 09-27 15:18 ?8139次閱讀
    FPGA<b class='flag-5'>中</b>幾個<b class='flag-5'>比較重要</b>的基本模塊是什么

    電源測試中比較重要的有哪些項目

    主要有交叉負載,浪涌,輸入電壓,紋波噪音,輸出短路,過功率,轉(zhuǎn)換效率,功率因數(shù),響應時間,時序,噪音,傳導輻射,漏電流,高低溫測試等。 交叉負載測試:對電源進行4種常用型負載類型的拉偏測試,以檢驗電源的電壓穩(wěn)定性; 浪涌:瞬間出現(xiàn)超出穩(wěn)定值的峰值,它包括浪涌電壓和浪涌電流。浪涌也叫突波,顧名思義就是超出正常工作電壓的瞬間過電壓。本質(zhì)上講,浪涌是發(fā)生在僅僅幾百萬分之一秒時間內(nèi)的一種劇烈脈沖??赡芤鹄擞康?/div>
    的頭像 發(fā)表于 08-26 19:05 ?3287次閱讀
    電源測試<b class='flag-5'>中比較重要</b>的有哪些項目

    JDK 19 / Java 19正式發(fā)布 虛擬線程來了

    記錄模式 (預覽版) Linux/RISC-V 移植 外部函數(shù)和內(nèi)存 API (預覽版) 虛擬線程(預覽版) Vector API (第四次孵化) Switch 模式匹配(第三預覽版) 結構化并發(fā)(孵化階段) JDK 19 / J
    的頭像 發(fā)表于 10-10 17:08 ?1874次閱讀

    JDK11升級JDK17最全實踐

    2021年9月14日,Oracle發(fā)布了可以長期支持的JDK17版本,那么從JDK11到JDK17,到底帶來了哪些特性呢?亞毫秒級的ZGC效果到底怎么樣呢?值得我們升級嗎?而且升級過程
    的頭像 發(fā)表于 11-17 10:36 ?1416次閱讀
    <b class='flag-5'>JDK</b>11升級<b class='flag-5'>JDK</b>17最全實踐

    weblogic修改jdk路徑

    WebLogic是一個流行的Java應用服務器,可以用于部署和管理企業(yè)級Java應用程序。在WebLogic的安裝和配置過程,我們可能會遇到需要修改JDK(Java Development Kit
    的頭像 發(fā)表于 12-05 14:46 ?1140次閱讀

    如何在eclipse配置jdk環(huán)境

    在Eclipse配置JDK環(huán)境非常重要,它是開發(fā)Java程序的基礎。本文將詳細介紹如何在Eclipse配置JDK環(huán)境。 下載和安裝
    的頭像 發(fā)表于 12-06 11:49 ?1479次閱讀

    JDK11升級JDK17最全實踐干貨來了

    解決你的問題。 上篇文章給大家?guī)砹?b class='flag-5'>JDK8升級JDK11的最全實踐,相信大家閱讀后已經(jīng)對JDK11有了比較深入的了解。2021年9月14日,Oracle發(fā)布了可以長期支持的
    的頭像 發(fā)表于 06-25 14:50 ?600次閱讀
    <b class='flag-5'>JDK</b>11升級<b class='flag-5'>JDK</b>17最全實踐干貨來了