日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人工智能 > ChatGpt >内容正文

ChatGpt

AAAIT学院JDK15新特性JAVA15版本

發布時間:2024/1/23 ChatGpt 40 豆豆
生活随笔 收集整理的這篇文章主要介紹了 AAAIT学院JDK15新特性JAVA15版本 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

伴隨著2020的寒冬和新冠病毒的肆虐,JAVA迎來了久未已久的JAVA 14。自從2017年JAVA 9發布之后,JAVA的發布版本跟上了敏捷開發的步伐,小步快跑,Java平臺發布節奏已從每3年以上的主要版本轉變為每6個月發布一次功能?,F在,每年的3月和9月都會發布新的版本功能。

學習QQ:83193980 ? 學習視頻 ? ? https://edu.csdn.net/course/detail/31331

三月已過,九月還遠嗎?

在JAVA 14中,推出了swith的最終版本,并且支持了NVM。

今天本文將會展望一下JAVA 15中會帶給我們的新特性。

總體來說有5個JEP將會提交到JAVA 15。

什么?你問我JEP是什么?

JEP的全稱就是JDK Enhancement Proposals,簡單點講就像是一個個對JAVA進行改進提案,這些提案會在合適的時間合適的地點被加入JDK的特定版本。

下面看下5大提案都有些什么內容:

JEP 371: Hidden Classes

通常我們在使用大型的框架或者lambda表達式的時候,會動態生成很多類。但是不幸的是標準的定義類的API:ClassLoader::defineClass 和 Lookup::defineClass不能夠區分出這些類是動態生成(運行時生成)的還是靜態
生成(編譯生成)的。

一般來說動態生成的類生命周期更短,并且其可見性要更低。但是現有的JDK并沒有這個功能。

所有有了Hidden Classes的提案,通過Hidden Classes,不管是JDK還是JDK外部的框架,在生成動態類的時候都可以定義為Hidden Classes,這樣可以更加有效的控制這些動態生成類的生命周期和可見性。

JEP 372: 刪除 Nashorn JavaScript Engine

實際上jdk.scripting.nashorn和jdk.scripting.nashorn.shell這兩個在JDK11的時候已經被標記為deprecated。在JDK15中只是把他們刪除而已。

JEP 377: 新的垃圾回收器ZGC正式上線了

Z Garbage Collector(ZGC)是在JAVA 11中引入的垃圾回收器,但一直都是實驗版本,在JDK 15中,終于要上線了。

ZGC是一個重新設計的并發的垃圾回收器,可以極大的提升GC的性能。

JEP 378: Text Blocks 標準化

Text Blocks第一次是在JDK 13中以預覽功能出現的JEP 355。然后在JDK 14中又出現了第二個版本JEP 368。終于在JDK 15中可以有最終版本了。

文本塊是一種多行字符串文字,它避免了大多數轉義序列的需要,以一種可預測的方式自動設置字符串的格式。

HTML example

傳統方式:

String html = "<html>\n" +" <body>\n" +" <p>Hello, world</p>\n" +" </body>\n" +"</html>\n";

文本塊方式:

String html = """<html><body><p>Hello, world</p></body></html>""";

SQL example

傳統方式:

String query = "SELECT `EMP_ID`, `LAST_NAME` FROM `EMPLOYEE_TB`\n" +"WHERE `CITY` = 'INDIANAPOLIS'\n" +"ORDER BY `EMP_ID`, `LAST_NAME`;\n";

文本塊方式:

String query = """SELECT `EMP_ID`, `LAST_NAME` FROM `EMPLOYEE_TB`WHERE `CITY` = 'INDIANAPOLIS'ORDER BY `EMP_ID`, `LAST_NAME`;""";

JEP 379: 新的垃圾回收器Shenandoah上線

Shenandoah和ZGC一樣,是以實驗特性在JAVA 12中引入的JEP 189?,F在終于要在JAVA 15中轉正了。

JEP 375:實例模式匹配(第二次預覽)

instanceof 自動匹配模式(預覽)

舊寫法:

// 先判斷類型 if (obj instanceof String) {// 然后轉換String s = (String) obj;// 然后才能使用 }

新寫法:

if (obj instanceof String s) {// 如果類型匹配 直接使用 } else {// 如果類型不匹配則不能直接使用 }

這是第二次預覽該功能,我們已經在 Java 14 中首次預覽過該特性。

9、Records Class(預覽)

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

舊寫法:

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) { }

安裝包下載

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

  • OpenJDK版本:https://jdk.java.net/15/

  • Oracle版本:http://www.oracle.com/technetwork/java/javase/downloads/index.html

上述版本,如果是個人學習用途,則差異不大。但如果是用于商業用途,則需要仔細看好相關的授權。Oracle JDK根據二進制代碼許可協議獲得許可,而OpenJDK根據GPL v2許可獲得許可。

安裝、驗證

本例子以OpenJDK版本為例。解壓安裝包openjdk-15_windows-x64_bin.zip到任意位置。

設置系統環境變量“JAVA_HOME”,如下圖所示。

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

安裝完成后,執行下面命令進行驗證:

?
  • >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)

  • 更多有關Java的基本知識,可以參閱《Java核心編程》這本書,描述的非常詳細。

    移除了 Nashorn JavaScript 腳本引擎

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

    Nashorn 是 JDK 1.8 引入的一個 JavaScript 腳本引擎,用來取代 Rhino 腳本引擎。Nashorn 是 ECMAScript-262 5.1 的完整實現,增強了 Java 和 JavaScript 的兼容性,并且大大提升了性能。

    那么為什么要移除?

    官方的解釋是主要的:隨著 ECMAScript 腳本語言的結構、API 的改編速度越來越快,維護 Nashorn 太有挑戰性了,所以……。

    5. 重新實現 DatagramSocket API

    重新實現舊版 DatagramSocket API,更簡單、更現代的實現來代替java.net.DatagramSocket和java.net.MulticastSocketAPI 的基礎實現,提高了 JDK 的可維護性和穩定性。

    新的底層實現將很容易使用虛擬線程,目前正在 Loom 項目中進行探索。這也是 JEP 353 的后續更新版本,JEP 353 已經重新實現了 Socket API。

    6. 準備禁用和廢除偏向鎖

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

    后面再確定是否需要繼續支持偏向鎖,因為維護這種鎖同步優化的成本太高了。

    總結

    以上是生活随笔為你收集整理的AAAIT学院JDK15新特性JAVA15版本的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。