www.久久久久|狼友网站av天堂|精品国产无码a片|一级av色欲av|91在线播放视频|亚洲无码主播在线|国产精品草久在线|明星AV网站在线|污污内射久久一区|婷婷综合视频网站

當(dāng)前位置:首頁 > 公眾號精選 > 架構(gòu)師社區(qū)
[導(dǎo)讀]JDK 15已經(jīng)于2020年9月15日如期發(fā)布,本文詳細(xì)介紹了JDK 15的新特性。


來源:my.oschina.net/waylau/blog/4633203

  • 發(fā)布版本說明
  • 安裝包下載
  • 安裝、驗(yàn)證
  • JDK 15 新特性說明

JDK 15已經(jīng)于2020年9月15日如期發(fā)布。本文介紹JDK 15新特性。

發(fā)布版本說明

根據(jù)發(fā)布的規(guī)劃,這次發(fā)布的 JDK 15 將是一個(gè)短期的過度版,只會(huì)被 Oracle 支持(維護(hù))6 個(gè)月,直到明年 3 月的 JDK 16 發(fā)布此版本將停止維護(hù)。而 Oracle 下一個(gè)長期支持版(LTS 版)會(huì)在明年的 9 月份發(fā)布(Java 17),LTS 版每 3 年發(fā)布一個(gè),上一次長期支持版是 18 年 9 月發(fā)布的 JDK 11。下圖展示了各個(gè)版本的發(fā)布?xì)v史。

最強(qiáng)JDK15安裝與講解,有點(diǎn)想升級,終于要廢棄偏向鎖了!

安裝包下載

主要分為OpenJDK版本和Oracle版本,下載地址如下:

  • OpenJDK版本:https://jdk.java.net/15/
  • Oracle版本:http://www.oracle.com/technetwork/java/javase/downloads/index.html

上述版本,如果是個(gè)人學(xué)習(xí)用途,則差異不大。但如果是用于商業(yè)用途,則需要仔細(xì)看好相關(guān)的授權(quán)。Oracle JDK根據(jù)二進(jìn)制代碼許可協(xié)議獲得許可,而OpenJDK根據(jù)GPL v2許可獲得許可。

安裝、驗(yàn)證

本例子以O(shè)penJDK版本為例。解壓安裝包openjdk-15_windows-x64_bin.zip到任意位置。

設(shè)置系統(tǒng)環(huán)境變量“JAVA_HOME”,如下圖所示。

最強(qiáng)JDK15安裝與講解,有點(diǎn)想升級,終于要廢棄偏向鎖了!

在用戶變量“Path”中,增加“%JAVA_HOME%\bin”。

安裝完成后,執(zhí)行下面命令進(jìn)行驗(yàn)證:

>java?-version
openjdk?version?"15"?2020-09-15
OpenJDK?Runtime?Environment?(build?15+36-1562)
OpenJDK?64-Bit?Server?VM?(build?15+36-1562,?mixed?mode,?sharing)

更多有關(guān)Java的基本知識(shí),可以參閱《Java核心編程》這本書,描述的非常詳細(xì)。

JDK 15 新特性說明

JDK 15 為用戶提供了14項(xiàng)主要的增強(qiáng)/更改,包括一個(gè)孵化器模塊,三個(gè)預(yù)覽功能,兩個(gè)不推薦使用的功能以及兩個(gè)刪除功能。

1. EdDSA 數(shù)字簽名算法

新加入 Edwards-Curve 數(shù)字簽名算法(EdDSA)實(shí)現(xiàn)加密簽名。在許多其它加密庫(如 OpenSSL 和 BoringSSL)中得到支持。與 JDK 中的現(xiàn)有簽名方案相比,EdDSA 具有更高的安全性和性能。這是一個(gè)新的功能。

使用示例如下:

//?example:?generate?a?key?pair?and?sign
KeyPairGenerator?kpg?=?KeyPairGenerator.getInstance("Ed25519");
KeyPair?kp?=?kpg.generateKeyPair();
//?algorithm?is?pure?Ed25519
Signature?sig?=?Signature.getInstance("Ed25519");
sig.initSign(kp.getPrivate());
sig.update(msg);
byte[]?s?=?sig.sign();

//?example:?use?KeyFactory?to?contruct?a?public?key
KeyFactory?kf?=?KeyFactory.getInstance("EdDSA");
boolean?xOdd?=?...
BigInteger?y?=?...
NamedParameterSpec?paramSpec?=?new?NamedParameterSpec("Ed25519");
EdECPublicKeySpec?pubSpec?=?new?EdECPublicKeySpec(paramSpec,?new?EdPoint(xOdd,?y));
PublicKey?pubKey?=?kf.generatePublic(pubSpec);

有關(guān)EdDSA 數(shù)字簽名算法的詳細(xì)內(nèi)容見RFC 8032規(guī)范。

2. 封閉類(預(yù)覽特性)

可以是封閉類和或者封閉接口,用來增強(qiáng) Java 編程語言,防止其他類或接口擴(kuò)展或?qū)崿F(xiàn)它們。

有了這個(gè)特性,意味著以后不是你想繼承就繼承,想實(shí)現(xiàn)就實(shí)現(xiàn)了,你得經(jīng)過允許才行。

示例如下:

public?abstract?sealed?class?Student
????permits?ZhangSan,?LiSi,?ZhaoLiu?
{
????...

}

類 Student 被 sealed 修飾,說明它是一個(gè)封閉類,并且只允許指定的 3 個(gè)子類繼承。

3. 隱藏類

此功能可幫助需要在運(yùn)行時(shí)生成類的框架??蚣苌深愋枰?jiǎng)討B(tài)擴(kuò)展其行為,但是又希望限制對這些類的訪問。隱藏類很有用,因?yàn)樗鼈冎荒芡ㄟ^反射訪問,而不能從普通字節(jié)碼訪問。此外,隱藏類可以獨(dú)立于其他類加載,這可以減少框架的內(nèi)存占用。這是一個(gè)新的功能。

4. 移除了 Nashorn JavaScript 腳本引擎

移除了 Nashorn JavaScript 腳本引擎、APIs,以及 jjs 工具。這些早在 JDK 11 中就已經(jīng)被標(biāo)記為 deprecated 了,JDK 15 被移除就很正常了。

Nashorn 是 JDK 1.8 引入的一個(gè) JavaScript 腳本引擎,用來取代 Rhino 腳本引擎。Nashorn 是 ECMAScript-262 5.1 的完整實(shí)現(xiàn),增強(qiáng)了 Java 和 JavaScript 的兼容性,并且大大提升了性能。

那么為什么要移除?

官方的解釋是主要的:隨著 ECMAScript 腳本語言的結(jié)構(gòu)、API 的改編速度越來越快,維護(hù) Nashorn 太有挑戰(zhàn)性了,所以……。

5. 重新實(shí)現(xiàn) DatagramSocket API

重新實(shí)現(xiàn)舊版 DatagramSocket API,更簡單、更現(xiàn)代的實(shí)現(xiàn)來代替java.net.DatagramSocket和java.net.MulticastSocketAPI 的基礎(chǔ)實(shí)現(xiàn),提高了 JDK 的可維護(hù)性和穩(wěn)定性。

新的底層實(shí)現(xiàn)將很容易使用虛擬線程,目前正在 Loom 項(xiàng)目中進(jìn)行探索。這也是 JEP 353 的后續(xù)更新版本,JEP 353 已經(jīng)重新實(shí)現(xiàn)了 Socket API。

最強(qiáng)JDK15安裝與講解,有點(diǎn)想升級,終于要廢棄偏向鎖了!

6. 準(zhǔn)備禁用和廢除偏向鎖

在 JDK 15 中,默認(rèn)情況下禁用偏向鎖(Biased Locking),并棄用所有相關(guān)的命令行選項(xiàng)。

后面再確定是否需要繼續(xù)支持偏向鎖,因?yàn)榫S護(hù)這種鎖同步優(yōu)化的成本太高了。

7. 模式匹配(第二次預(yù)覽)

第一次預(yù)覽是 JDK 14 中提出來的,點(diǎn)擊這里查看我之前寫的詳細(xì)教程。

Java 14 之前用法:

if?(obj?instanceof?String)?{
????String?s?=?(String)?obj;
????//?使用s
}

Java 14之后的用法:

if?(obj?instanceof?String?s)?{
????//?使用s
}

Java 15 并沒有對此特性進(jìn)行調(diào)整,繼續(xù)預(yù)覽特性,只是為了收集更多的用戶反饋,可能還不成熟吧。

8. ZGC 功能轉(zhuǎn)正

ZGC是一個(gè)可伸縮、低延遲的垃圾回收器。

ZGC 已由JEP 333集成到JDK 11 中,其目標(biāo)是通過減少 GC 停頓時(shí)間來提高性能。借助 JEP 377,JDK 15 將 ZGC 垃圾收集器從預(yù)覽特性變更為正式特性而已,沒錯(cuò),轉(zhuǎn)正了。

這個(gè) JEP 不會(huì)更改默認(rèn)的 GC,默認(rèn)仍然是 G1。

9. 文本塊功能轉(zhuǎn)正

文本塊,是一個(gè)多行字符串,它可以避免使用大多數(shù)轉(zhuǎn)義符號,自動(dòng)以可預(yù)測的方式格式化字符串,并讓開發(fā)人員在需要時(shí)可以控制格式。

文本塊最早準(zhǔn)備在 JDK 12 添加的,但最終撤消了,然后在 JDK 13 中作為預(yù)覽特性進(jìn)行了添加,然后又在 JDK 14 中再次預(yù)覽,在 JDK 15 中,文本塊終于轉(zhuǎn)正,暫不再做進(jìn)一步的更改。

Java 13 之前用法,使用one-dimensional的字符串語法:

String?html?=?"????

Hello,?world

\n"
?+
??????????????"\n";

Java 13 之后用法,使用two-dimensional文本塊語法:

String?html?=?"""
??????????????????

Hello,?world


??????????????
??????????????"
"";

10. Shenandoah 垃圾回收算法轉(zhuǎn)正

Shenandoah 垃圾回收從實(shí)驗(yàn)特性變?yōu)楫a(chǎn)品特性。這是一個(gè)從 JDK 12 引入的回收算法,該算法通過與正在運(yùn)行的 Java 線程同時(shí)進(jìn)行疏散工作來減少 GC 暫停時(shí)間。Shenandoah 的暫停時(shí)間與堆大小無關(guān),無論堆棧是 200 MB 還是 200 GB,都具有相同的一致暫停時(shí)間。

JDK 15 Shenandoah垃圾收集器從預(yù)覽特性變更為正式特性而已,沒錯(cuò),又是轉(zhuǎn)正了。

11. 移除了 Solaris 和 SPARC 端口。

移除了 Solaris/SPARC、Solaris/x64 和 Linux/SPARC 端口的源代碼及構(gòu)建支持。這些端口在 JDK 14 中就已經(jīng)被標(biāo)記為 deprecated 了,JDK 15 被移除也不奇怪。

12. 外部存儲(chǔ)器訪問 API(二次孵化)

這個(gè)最早在 JDK 14 中成為孵化特性,JDK 15 繼續(xù)二次孵化并對其 API 有了一些更新。

目的是引入一個(gè) API,以允許 Java 程序安全有效地訪問 Java 堆之外的外部內(nèi)存。這同樣是 Java 14 的一個(gè)預(yù)覽特性。

13. Records Class(二次預(yù)覽)

Records Class 也是第二次出現(xiàn)的預(yù)覽功能,它在 JDK 14 中也出現(xiàn)過一次了,使用 Record 可以更方便的創(chuàng)建一個(gè)常量類,使用的前后代碼對比如下。

舊寫法:

class?Point?{
????private?final?int?x;
????private?final?int?y;

????Point(int?x,?int?y)?{
????????this.x?=?x;
????????this.y?=?y;
????}

????int?x()?{?return?x;?}
????int?y()?{?return?y;?}

????public?boolean?equals(Object?o)?{
????????if?(!(o?instanceof?Point))?return?false;
????????Point?other?=?(Point)?o;
????????return?other.x?==?x?&&?other.y?=?y;
????}

????public?int?hashCode()?{
????????return?Objects.hash(x,?y);
????}

????public?String?toString()?{
????????return?String.format("Point[x=%d,?y=%d]",?x,?y);
????}
}

新寫法:

record?Point(int?x,?int?y)?{?}

也就是說在使用了 record 之后,就可以用一行代碼編寫出一個(gè)常量類,并且這個(gè)常量類還包含了構(gòu)造方法、toString()、equals() 和 hashCode() 等方法。

14. 廢除 RMI 激活

廢除 RMI 激活,以便在將來進(jìn)行刪除。需要說明的是,RMI 激活是 RMI 中一個(gè)過時(shí)的組件,自 Java 8 以來一直是可選的。

         

特別推薦一個(gè)分享架構(gòu)+算法的優(yōu)質(zhì)內(nèi)容,還沒關(guān)注的小伙伴,可以長按關(guān)注一下:

最強(qiáng)JDK15安裝與講解,有點(diǎn)想升級,終于要廢棄偏向鎖了!

最強(qiáng)JDK15安裝與講解,有點(diǎn)想升級,終于要廢棄偏向鎖了!

最強(qiáng)JDK15安裝與講解,有點(diǎn)想升級,終于要廢棄偏向鎖了!

長按訂閱更多精彩▼

最強(qiáng)JDK15安裝與講解,有點(diǎn)想升級,終于要廢棄偏向鎖了!

如有收獲,點(diǎn)個(gè)在看,誠摯感謝


免責(zé)聲明:本文內(nèi)容由21ic獲得授權(quán)后發(fā)布,版權(quán)歸原作者所有,本平臺(tái)僅提供信息存儲(chǔ)服務(wù)。文章僅代表作者個(gè)人觀點(diǎn),不代表本平臺(tái)立場,如有問題,請聯(lián)系我們,謝謝!

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

加利福尼亞州圣克拉拉縣2024年8月30日 /美通社/ -- 數(shù)字化轉(zhuǎn)型技術(shù)解決方案公司Trianz今天宣布,該公司與Amazon Web Services (AWS)簽訂了...

關(guān)鍵字: AWS AN BSP 數(shù)字化

倫敦2024年8月29日 /美通社/ -- 英國汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時(shí)1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動(dòng) BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時(shí)企業(yè)卻面臨越來越多業(yè)務(wù)中斷的風(fēng)險(xiǎn),如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報(bào)道,騰訊和網(wǎng)易近期正在縮減他們對日本游戲市場的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對環(huán)境變化,經(jīng)營業(yè)績穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤率延續(xù)升勢 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競爭力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競爭優(yōu)勢...

關(guān)鍵字: 通信 BSP 電信運(yùn)營商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺(tái)與中國電影電視技術(shù)學(xué)會(huì)聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會(huì)上宣布正式成立。 活動(dòng)現(xiàn)場 NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會(huì)上,軟通動(dòng)力信息技術(shù)(集團(tuán))股份有限公司(以下簡稱"軟通動(dòng)力")與長三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉