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

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

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

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

jf_ro2CN3Fa ? 來源:OSC開源社區(qū) ? 作者:OSC開源社區(qū) ? 2022-10-10 17:08 ? 次閱讀

來源:OSC開源社區(qū)(ID:oschina2013)

記錄模式 (預覽版)

Linux/RISC-V 移植

外部函數(shù)和內(nèi)存 API (預覽版)

虛擬線程(預覽版)

Vector API (第四次孵化)

Switch 模式匹配(第三預覽版)

結(jié)構(gòu)化并發(fā)(孵化階段)

JDK 19 / Java 19 已正式發(fā)布。

6e3e53d0-3f9c-11ed-9e49-dac502259ad0.png

新版本總共包含 7 個新的 JEP:

405: Record Patterns (Preview) 記錄模式
422: Linux/RISC-V Port Linux/RISC-V 移植
424: Foreign Function & Memory API (Preview) 外部函數(shù)和內(nèi)存 API
425: Virtual Threads (Preview) 虛擬線程
426: Vector API (Fourth Incubator) 向量 API
427: Pattern Matching for switch (Third Preview) Switch 模式匹配
428: Structured Concurrency (Incubator) 結(jié)構(gòu)化并發(fā)

下面對新特性作簡短的介紹:

記錄模式 (預覽版)

使用*記錄模式 *增強 Java 編程語言以解構(gòu)記錄值,可以嵌套記錄模式和類型模式,實現(xiàn)強大的、聲明性的和可組合的數(shù)據(jù)導航和處理形式。這是一個預覽語言功能。

Linux/RISC-V 移植

將JDK 移植到 Linux/RISC-V,目前僅支持 RISC-V 的 RV64GV 配置(包含向量指令的通用 64 位 ISA)。將來可能會考慮支持其他 RISC-V 配置,例如通用 32 位配置 (RV32G)。

外部函數(shù)和內(nèi)存 API (預覽版)

引入一個 API,Java 程序可以通過該 API 與 Java 運行時之外的代碼和數(shù)據(jù)進行互操作。通過該 API 可有效地調(diào)用外部函數(shù)( JVM 之外的代碼)和安全地訪問外部內(nèi)存(不受 JVM 管理的內(nèi)存),使得 Java 程序能夠調(diào)用本機庫并處理本機數(shù)據(jù),而不會出現(xiàn) JNI 的脆弱性和危險。這是個預覽版 API 。

虛擬線程(預覽版)

將虛擬線程引入 Java 平臺。虛擬線程是輕量級線程,可顯著地減少編寫、維護和觀察高吞吐量并發(fā)應用程序的工作量。這是一個預覽 API,我們 OSC 曾對此進行了詳細介紹 。

Vector API (第四次孵化)

引入一個 API 來表達在運行時能夠可靠編譯的向量計算,在支持的 CPU 架構(gòu)上優(yōu)化向量指令,從而實現(xiàn)優(yōu)于標量計算的性能。

Switch 模式匹配(第三預覽版)

用switch 表達式和語句的模式匹配,以及對模式語言的擴展來增強 Java 編程語言。將模式匹配擴展到 switch 中,允許針對一些模式測試表達式,這樣就可以簡明而安全地表達復雜的面向數(shù)據(jù)的查詢。該特性最早在 Java 17 中作為預覽版出現(xiàn), Java 19 為第三次預覽。

結(jié)構(gòu)化并發(fā)(孵化階段)

引入用于結(jié)構(gòu)化并發(fā)的 API 來簡化多線程編程,結(jié)構(gòu)化并發(fā)將不同線程中運行的多個任務視為單個工作單元,從而簡化錯誤處理、提高可靠性并增強可觀察性。這是一個孵化階段的 API。另附

JDK 19 時間表:

2022/06/09 Rampdown Phase One Rampdown 第一階段 (fork from main line)
2022/07/21 Rampdown Phase Two Rampdown 第二階段
2022/08/11 Initial Release Candidate 初始候選版本(RC)
2022/08/25 Final Release Candidate 最終候選版本(RC)
2022/09/20 General Availability 穩(wěn)定版本

其中 Rampdown 主要是修 Bug 和測試階段。

還有一個有意思的事:從 Java 16 開始,每個版本的特性數(shù)量越來越少:

Java 16:17 個

Java 17:14 個

Java 18 :9 個

Java 19 :7 個

Java 20 不會變成 5 個吧...

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

    關(guān)注

    87

    文章

    11181

    瀏覽量

    208507
  • JAVA
    +關(guān)注

    關(guān)注

    19

    文章

    2948

    瀏覽量

    104375
  • JDK
    JDK
    +關(guān)注

    關(guān)注

    0

    文章

    80

    瀏覽量

    16566
  • 線程
    +關(guān)注

    關(guān)注

    0

    文章

    502

    瀏覽量

    19620
  • RISC-V
    +關(guān)注

    關(guān)注

    44

    文章

    2181

    瀏覽量

    45905

原文標題:JDK 19 / Java 19 正式發(fā)布,虛擬線程來了!

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

收藏 人收藏

    評論

    相關(guān)推薦

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

    1、前言 截至目前(2023年),Java8發(fā)布至今已有9年,2018年9月25日,Oracle發(fā)布Java11,這是Java8之后的首個
    的頭像 發(fā)表于 06-25 14:51 ?350次閱讀
    <b class='flag-5'>JDK</b>8升級<b class='flag-5'>JDK</b>11最全實踐干貨<b class='flag-5'>來了</b>

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

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

    探索虛擬線程:原理與實現(xiàn)

    虛擬線程的引入與優(yōu)勢 在Loom項目之前,Java虛擬機(JVM)中的線程是通過java.lan
    的頭像 發(fā)表于 06-24 11:35 ?236次閱讀
    探索<b class='flag-5'>虛擬</b><b class='flag-5'>線程</b>:原理與實現(xiàn)

    java實現(xiàn)多線程的幾種方式

    Java實現(xiàn)多線程的幾種方式 多線程是指程序中包含了兩個或以上的線程,每個線程都可以并行執(zhí)行不同的任務或操作。
    的頭像 發(fā)表于 03-14 16:55 ?516次閱讀

    一文了解Java 21的新功能

    JDK 21 于 2023 年 9 月 19發(fā)布,是繼之前的 LTS 版本 JDK 17 之后最新的長期支持 (LTS) 版本。在本文中,我們將探討
    的頭像 發(fā)表于 12-21 16:19 ?1201次閱讀
    一文了解<b class='flag-5'>Java</b> 21的新功能

    java環(huán)境搭建及配置教程

    Development Kit(JDKJDKJava開發(fā)的核心組件,它包含了Java編譯器、Java
    的頭像 發(fā)表于 12-06 15:50 ?713次閱讀

    如何配置jdk的環(huán)境變量

    配置JDK的環(huán)境變量是在操作系統(tǒng)中設置一些路徑,以便能夠在命令提示符或終端中全局運行Java開發(fā)工具。這樣,您可以在任何位置運行Java程序。 以下是一步一步的指南來配置JDK的環(huán)境變
    的頭像 發(fā)表于 12-06 15:07 ?728次閱讀

    idea的jdk配置在哪

    在開發(fā)Java應用程序時,我們通常需要配置Java開發(fā)工具包(JDK),以便能夠在我們的集成開發(fā)環(huán)境(IDE)中編寫和運行Java代碼。本文將詳細介紹如何在Idea中配置
    的頭像 發(fā)表于 12-06 15:04 ?2336次閱讀

    weblogic修改jdk路徑

    。它包含了Java編譯器(javac)、Java運行時環(huán)境(JRE)、Java虛擬機(JVM)等關(guān)鍵組件。在WebLogic中,JDK的路徑
    的頭像 發(fā)表于 12-05 14:46 ?1140次閱讀

    java虛擬機內(nèi)存包括遠空間內(nèi)存嗎

    Java虛擬機(JVM)內(nèi)存是Java程序執(zhí)行時所使用的內(nèi)存空間的總稱,包括了Java堆、方法區(qū)、本地方法棧、虛擬機棧和程序計數(shù)器等多個部分
    的頭像 發(fā)表于 12-05 14:15 ?348次閱讀

    Spring Boot 3.2支持虛擬線程和原生鏡像

    Spring Boot 3.2 前幾日發(fā)布,讓我們用 Java 21、GraalVM 和虛擬線程來嘗試一下。
    的頭像 發(fā)表于 11-30 16:22 ?644次閱讀

    如何查看java程序的內(nèi)存分布

    。 程序計數(shù)器: 程序計數(shù)器是一塊較小的內(nèi)存空間,它的作用是指示當前線程所執(zhí)行的字節(jié)碼指令的行號。在多線程環(huán)境下,每個線程都有一個獨立的程序計數(shù)器,用于記錄當前線程執(zhí)行的字節(jié)碼指令。
    的頭像 發(fā)表于 11-23 14:47 ?966次閱讀

    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最全實踐

    JDK如何優(yōu)雅退出一個線程

    發(fā)布時,需要退出線程、關(guān)閉線程池、關(guān)閉進程。 定時任務、周期任務需要終止執(zhí)行時,需要退出當前線程?;蛘咄顺霎斍叭蝿盏膱?zhí)行。
    的頭像 發(fā)表于 11-17 10:02 ?397次閱讀
    <b class='flag-5'>JDK</b>如何優(yōu)雅退出一個<b class='flag-5'>線程</b>?

    什么是虛擬線程?虛擬線程到底是做什么用的呢?

    虛擬線程是在Java并發(fā)領(lǐng)域添加的一個新概念,那么虛擬線程到底是做什么用的呢?
    的頭像 發(fā)表于 10-29 10:23 ?3005次閱讀
    什么是<b class='flag-5'>虛擬</b><b class='flag-5'>線程</b>?<b class='flag-5'>虛擬</b><b class='flag-5'>線程</b>到底是做什么用的呢?