国产精品99久久久久久人小-av在线免费观看小说-女同志一区二区你懂的在线-日韩一区二区三区精品丝袜

Internet Develppment
互聯(lián)網(wǎng)開(kāi)發(fā)& 推廣服務(wù)提供商

我們擅長(zhǎng)商業(yè)策略與用戶體驗(yàn)的完美結(jié)合。

歡迎瀏覽我們的案例。

首頁(yè) > 新聞中心 > 新聞動(dòng)態(tài) > 正文

Java19如期而至 該版本是自O(shè)racle宣布Java以六個(gè)月為一周期發(fā)布的第十個(gè)版本

發(fā)布時(shí)間:2022-09-22 09:18:08來(lái)源:myzaker

  時(shí)隔六個(gè)月,9 月 20 日,Java 19 如期而至,這一版本是自 Oracle 宣布 Java 以六個(gè)月為一周期發(fā)布的第十個(gè)版本。不過(guò)值得注意的是,JDK 19 是標(biāo)準(zhǔn)的非 LTS(長(zhǎng)期支持)版本。

  話不多說(shuō),我們先來(lái)一起看一下最新版本的 Java 帶來(lái)了哪些更新?

  Java 19 的七大亮點(diǎn)更新

  根據(jù)官方發(fā)布的公告顯示,Java 19 版本帶來(lái)了七大主要功能更新,包括結(jié)構(gòu)化并發(fā)、記錄模式、外部函數(shù)和內(nèi)存 API 的預(yù)覽,以及對(duì)開(kāi)源的 Linux/RISC-V 指令集架構(gòu)(ISA)的支持。除了 Linux/RISC-V 功能,所有的功能都處于預(yù)覽或孵化階段。

  具體來(lái)看:

  結(jié)構(gòu)化并發(fā)。當(dāng)前還處于孵化階段,旨在通過(guò)結(jié)構(gòu)化并發(fā) API 簡(jiǎn)化多線程編程。這種并發(fā)性將不同線程中運(yùn)行的多個(gè)任務(wù)視為單個(gè)工作單元,從而簡(jiǎn)化錯(cuò)誤處理、提高可靠性和可觀察性。這個(gè)功能來(lái)自 Project Loom,它引入了一個(gè)新的輕量級(jí)并發(fā)模型。

  記錄模式,這一功能目前也處于預(yù)覽版,主要是用來(lái)解構(gòu)記錄值。記錄模式和類型模式可以被嵌套,以實(shí)現(xiàn)強(qiáng)大的、具有聲明性的和可組合的數(shù)據(jù)導(dǎo)航和處理形式。該提案的目標(biāo)包括擴(kuò)展模式匹配,用以表達(dá)更復(fù)雜的、可組合的數(shù)據(jù)查詢,同時(shí)不改變類型模式的語(yǔ)法或語(yǔ)義。該提案建立在 2021 年 3 月在 JDK 16 中交付的模式匹配的基礎(chǔ)上。未來(lái),Oracle 可能會(huì)要求對(duì)記錄模式進(jìn)行擴(kuò)展,使之具備數(shù)組模式、Vararg 模式。記錄模式是 Project Amber 的一部分,該項(xiàng)目旨在探索和孵化較小的、面向生產(chǎn)力的 Java 功能。

  外部函數(shù)和內(nèi)存 API 的預(yù)覽版。通過(guò)引入一個(gè) API,Java 程序可以與 Java 運(yùn)行時(shí)之外的代碼和數(shù)據(jù)進(jìn)行互操作。通過(guò)有效地調(diào)用外部函數(shù)(即 JVM 之外的代碼)和安全地訪問(wèn)外部?jī)?nèi)存(即不由 JVM 管理的內(nèi)存),該 API 使 Java 程序能夠調(diào)用本地庫(kù)并處理本機(jī)數(shù)據(jù),而不會(huì)出現(xiàn) Java 本地接口(JNI)的危險(xiǎn)和脆弱。外部函數(shù)和內(nèi)存 API 結(jié)合了兩個(gè)早期的孵化 API:外部?jī)?nèi)存訪問(wèn) API 和外部鏈接器 API。外部函數(shù)和內(nèi)存 API 曾在 JDK 17 中孵化,而后在 JDK 18 中重新孵化。該提案的目標(biāo)包括易用性、性能、通用性和安全性。

  虛擬線程的預(yù)覽版。這是一種輕量級(jí)的線程,大大減少了編寫、維護(hù)和觀察高吞吐量并發(fā)應(yīng)用的工作量??梢砸院?jiǎn)單的 thread-per-request 風(fēng)格編寫的服務(wù)器應(yīng)用程序能夠以接近最佳的硬件利用率進(jìn)行擴(kuò)展,通過(guò)使用 java.lang Thread API 現(xiàn)有代碼能夠以最小的改動(dòng)采用虛擬線程,并基于現(xiàn)有的 JDK 工具對(duì)虛擬線程進(jìn)行故障診斷、調(diào)試和分析。本提案的目標(biāo)不是要改變 Java 的基本并發(fā)模型,也不是要在 Java 語(yǔ)言或 Java 庫(kù)中提供新的數(shù)據(jù)并行結(jié)構(gòu)。它的目標(biāo)也不是去除線程的傳統(tǒng)實(shí)現(xiàn),或默默地將現(xiàn)有的應(yīng)用程序遷移到使用虛擬線程。這項(xiàng)功能也是 Project Loom 的一部分。

  對(duì) switch 表達(dá)式和語(yǔ)句的模式匹配進(jìn)行了第三次預(yù)覽。這項(xiàng)功能以前在 JDK 17、JDK 18 中進(jìn)行過(guò)預(yù)覽。這一次在 JDK 19 中將進(jìn)一步細(xì)化功能,包括用 switch 塊中的 when 子句替換受保護(hù)的模式。另外,當(dāng)選擇器表達(dá)式的值為 null 時(shí),模式切換的運(yùn)行時(shí)語(yǔ)義與傳統(tǒng)的語(yǔ)義更加一致。這項(xiàng)功能也是 Amber 項(xiàng)目的一部分。

  Vector API 的第四次孵化,將表達(dá)向量計(jì)算,在運(yùn)行時(shí)可靠地編譯為支持的 CPU 架構(gòu)上的最佳向量指令,從而實(shí)現(xiàn)優(yōu)于等效標(biāo)量計(jì)算的性能。該 API 的開(kāi)發(fā)者使用 HotSpot 自動(dòng)矢量器,可獲得了一種在 Java 中編寫復(fù)雜的向量算法的方法,但有一個(gè)用戶模型,使向量化更可預(yù)測(cè)和穩(wěn)健。Vector API 先前已被納入 JDK 16、JDK 17 和 JDK 19。在最新的 JDK 19 中,官方為該功能增加了兩個(gè)跨道向量操作,即壓縮和擴(kuò)展,以及一個(gè)互補(bǔ)的向量掩碼壓縮操作。壓縮向量操作將由掩碼選擇的源向量的通道按通道順序映射到目標(biāo)向量,而擴(kuò)展操作則做相反的操作。壓縮操作在過(guò)濾查詢結(jié)果時(shí)非常有用。

  通過(guò) Linux/RISC-V 移植,目前這一功能已正式可用。Java 將獲得對(duì)硬件指令集的支持,該指令集已經(jīng)被廣泛的語(yǔ)言工具鏈所支持。RISC-V 實(shí)際上是一系列相關(guān)的 ISA。Linux/RISC-V 端口將只支持 RISC-V 的 RV64GV 配置,這是一個(gè)包括矢量指令的通用 64 位 ISA。Java 的開(kāi)發(fā)者可能會(huì)在將來(lái)考慮其他 RISC-V 的配置。

  除了以上功能更新之外,甲骨文公司 Java 平臺(tái)開(kāi)發(fā)高級(jí)副總裁、OpenJDK 管理委員會(huì)主席 Georges Saab 表示,最新的 Java 版本還修復(fù)了一千多處錯(cuò)誤,提高了語(yǔ)言的穩(wěn)定性和性能。不過(guò),Saab 稱,Java 客戶經(jīng)常推遲升級(jí),因?yàn)樗麄兛戳斯δ芰斜恚瑳](méi)有看到他們明顯需要的東西。但他敦促 Java 開(kāi)發(fā)者跟上程序," 因?yàn)橐磺卸紩?huì)變得更好 "。

  Java 有望在三年內(nèi)成為最頻繁使用的編程語(yǔ)言平臺(tái)

  事實(shí)上,近幾年間,在 Python 火速升溫之下,關(guān)于 Java 大廈將倒、步入下坡路等言論不絕于耳,很多人認(rèn)為 Java 的使用率已大不如以前。

  不過(guò),在這邊發(fā)布 Java 19 之際,Oracle 也在官方博客上發(fā)布了一篇《Java is #1 choice for cloud according to VDC Research》的文章,似乎在為 Java " 站臺(tái) ",其中引用了咨詢公司 VDC Research 的一份關(guān)于 Java 在企業(yè)中使用和重要性的研究報(bào)告。

  該研究報(bào)告考察了當(dāng)今主流的 20 多種頂級(jí)編程語(yǔ)言,發(fā)現(xiàn) Java 仍然是頂級(jí)技術(shù)趨勢(shì)中排名第一的語(yǔ)言,也是開(kāi)發(fā)者信任的解決安全問(wèn)題的最高評(píng)級(jí)語(yǔ)言。

  這份報(bào)告數(shù)據(jù)顯示,企業(yè)在不使用 Java 的項(xiàng)目通常比使用 Java 的項(xiàng)目要多花費(fèi) 22% 的成本。

  同時(shí),Java 有望在三年內(nèi)成為最頻繁使用的編程語(yǔ)言平臺(tái),超過(guò) JavaScript、C++ 和 Python 等。云開(kāi)發(fā)人員將 Java 列為對(duì)其組織運(yùn)營(yíng)最重要的語(yǔ)言。這對(duì)于涉及在云端開(kāi)發(fā)或部署的項(xiàng)目來(lái)說(shuō)是真實(shí)的。

  這份報(bào)告指出,多年來(lái),Java 在云計(jì)算生態(tài)系統(tǒng)中的地位一直在提高,基于云計(jì)算的 JVM 現(xiàn)在正處于每年增長(zhǎng) 12.5% 的軌道上,到 2025 年將達(dá)到 820 億的活躍安裝基數(shù)。

  毋庸置疑,在企業(yè)級(jí)應(yīng)用以及云生態(tài)系統(tǒng)中,至今還未有一種語(yǔ)言能夠超越 Java。然而,Oracle 內(nèi)部對(duì) Java 更新頻率的加快,讓不少開(kāi)發(fā)者報(bào)以 " 你更新任你更新,我就不用 " 的態(tài)度,也讓很多人成為 Java 8、Java 11 等老版本的 " 釘子戶 "。

  對(duì)于這一點(diǎn),據(jù)外媒 The Register 報(bào)道,Saab 在采訪時(shí)也表示 Oracle 關(guān)注到了這一點(diǎn)," 自從我們轉(zhuǎn)向這種模式以來(lái),沒(méi)有任何延遲,你可能知道,我們以前的模式并非總是如此。在過(guò)去,用戶往往需要等待相當(dāng)長(zhǎng)的時(shí)間才能得到 Java 中的任何新東西,然后他們會(huì)一下子得到太多的東西。

  我們確實(shí)意識(shí)到,并不是每個(gè)人都想每六個(gè)月重新發(fā)布一次。因此,我們所做的一件重要的事情是為長(zhǎng)期支持提供 Java SE 訂閱服務(wù),基本上使那些希望保持在一個(gè)版本上并每季度得到更新以保持其安全性的企業(yè)(可以這樣做)。"

  你是否會(huì)升級(jí)到最新版本的 Java?

  每年在 Java 最新版本到來(lái)之際,也有不少人陷入了 " 升級(jí) or 不升級(jí) " 的糾結(jié)中。根據(jù)知名科技公司 New Relic 之前發(fā)布的《Java 生態(tài)系統(tǒng)狀況報(bào)告》顯示,2018 年 9 月發(fā)布的 Java 11 是目前最受歡迎的 Java 版本(48%),其次是 2014 年 3 月發(fā)布的 Java 8(46%),兩者都是長(zhǎng)期支持(LTS)版本。


每個(gè) Java LTS 版本的使用百分比

  最新的一個(gè)長(zhǎng)期版本 Java 17 排名還不是很高,但它在發(fā)布后的幾個(gè)月里,已經(jīng)超過(guò)了 Java 6、Java 10 和 Java 16 版本的占比。

  此前,Oracle 還提議將 JDK LTS 的發(fā)布周期從每三年一次改為每?jī)赡暌淮巍H绻撎岚副唤邮?,這意味著 JDK 17 之后的下一個(gè) JDK LTS 版本將是 JDK 21,而不是 JDK 23。

  因此,相較非 LTS 版本,LTS 版本帶來(lái)的穩(wěn)定支持更受 Java 開(kāi)發(fā)者歡迎一些,那么,你當(dāng)前正在使用哪個(gè)版本的 Java 呢?這一次 Java 19 發(fā)布,你會(huì)去嘗鮮嗎?
  (邯鄲小程序開(kāi)發(fā)

最新資訊
? 2018 河北碼上網(wǎng)絡(luò)科技有限公司 版權(quán)所有 冀ICP備18021892號(hào)-1   
? 2018 河北碼上科技有限公司 版權(quán)所有.