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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

Java14发布!Switch竟如此简单?Lombok也不需要了?来用Idea搭建Java14吧!​

發(fā)布時間:2025/3/11 java 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Java14发布!Switch竟如此简单?Lombok也不需要了?来用Idea搭建Java14吧!​ 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Java 14 在 2020.3.17 日發(fā)布正式版了,但現在很多公司還在使用 Java 7 或 Java 8,每當看到 Java 又發(fā)布新版本心里就慌得一匹。不過此版本并不是 LTS (長期支持版) 版本,所以不要慌,我們先來了解一下好了,等 LTS 版本發(fā)布后再用也不遲。

版本說明

現在 Java 的發(fā)布節(jié)奏是每年發(fā)布兩個 GA (General Availability,正式發(fā)布版),每 6 個月發(fā)布一版,發(fā)布月份為 3 月和 9月。

Oracle 只對 LTS 版本提供付費支持,其中包括 Java 8 和 Java 11,Java 11 的付費支持會持續(xù)到 2026 年,每 3 年發(fā)布一個 LTS 版,下一個 LTS 版本將是 Java 17。

Java 版本的快速更新,一定程度上是為了迎合了開發(fā)者和現在技術發(fā)展的潮流,同時也利于 Java 版本的交付,把大版本拆成小版本,起碼不會出現大的延期了。

Java 14 新特性

此版本包含的 JEP (Java/JDK Enhancement Proposals,JDK 增強提案) 比 Java 12 和 Java 13 加起來都多,總共 16 個新特性。

  • 305: instanceof 的模式匹配 (預覽)

  • 343: 打包工具 (Incubator)

  • 345: G1 的 NUMA 內存分配優(yōu)化

  • 349: JFR 事件流

  • 352: 非原子性的字節(jié)緩沖區(qū)映射

  • 358: 友好的空指針異常

  • 359: Records (預覽)

  • 361: Switch 表達式 (標準)

  • 362: 棄用 Solaris 和 SPARC 端口

  • 363: 移除 CMS (Concurrent Mark Sweep) 垃圾收集器

  • 364: macOS 系統(tǒng)上的 ZGC

  • 365: Windows 系統(tǒng)上的 ZGC

  • 366: 棄用 ParallelScavenge + SerialOld GC 組合

  • 367: 移除 Pack200 Tools 和 API

  • 368: 文本塊 (第二個預覽版)

  • 370: 外部存儲器 API (Incubator)

可以看出其中很多優(yōu)化都是關于垃圾回收器的,CMS 垃圾回收器也終于退出歷史的舞臺了,Java 9 被標記為過時的,Java 14 被正式的移除了。

配置 Idea 運行 Java 14

1.下載最新版 Idea

Idea 的預覽版 2020.1 是支持 Java 14 的,因此我們最好下載并安裝此版本,截圖如下:?

2.配置 Idea

如果只是下載了最新的 Idea 去運行 Java 14 會提示如下錯誤:

Error:(10, 35) java: instanceof 中的模式匹配 是預覽功能,默認情況下禁用。(請使用 --enable-preview 以啟用 instanceof 中的模式匹配)

這是因為 Java 14 中有很多特性還處于預覽版,需要配置一下 Idea 支持它 (Java 14) 的預覽功能,如下圖所示:?

小貼士:如果不想使用 Idea 體驗新特性,也可以使用 javac 編譯代碼運行,編譯的時候需要加上“--enable-preview”參數,因為 Java 14 中很多功能都處于預覽版,完整編譯命令“javac --enable-preview --release 14 XXX.java”。

代碼體驗新特性

接下來我們使用代碼的方式,演示幾個在 Java 14 中比較重要且好用的新特性,我們會使用新舊代碼對比的方式,來進行演示。

1.方便的 instanceof

private static void instanceofTest() {Object obj = "Java 中文社群";// 舊寫法if (obj instanceof String) {String s = (String) obj;System.out.println(s);}// 新寫法if (obj instanceof String s) {System.out.println(s);} }

以上程序的執(zhí)行結果為:

Java 中文社群

Java 中文社群

2.方便的 switch

// 舊寫法 switch ("java") {case "java":case "jdk":System.out.println("This is Java.");break;default:System.out.println("default");break; } // 新寫法 switch ("java") {case "java", "jdk" -> System.out.println("This is Java.");default -> System.out.println("default"); }

以上程序的執(zhí)行結果為:

This is Java.

This is Java.

3.新增記錄類型 Records

// 記錄類型 record People(Integer id, String name, Integer age) { } // 實例化 People people = new People(1, "老王", 18); // 輸出屬性 name System.out.println(people.name);

以上程序的執(zhí)行結果為:

老王

我們使用反編譯工具來看 Records 最終的實現代碼:

? example git:(master) ? javap Java14Example\$1People final class com.example.Java14Example$1People extends java.lang.Record {public com.example.Java14Example$1People(java.lang.Integer, java.lang.String, java.lang.Integer);public java.lang.String toString();public final int hashCode();public final boolean equals(java.lang.Object);public java.lang.Integer id();public java.lang.String name();public java.lang.Integer age(); }

可以看出,People 類最終繼承了 Record 類,創(chuàng)建了 toString()、equals()、hashCode() 等方法,還有三個自定義屬性方法,等等,這種寫法很熟悉嘛,這不就是一個自定義的業(yè)務類嗎?之前需要一大堆的代碼,現在兩行代碼就搞定了,真是爽,不過我們還發(fā)現了一些細節(jié):記錄類型是被 final 修飾的,因此他不能有子類了,并且此類也不能繼承其他父類,因為他已經繼承了 Record 類。

總結

Java 新特性使開發(fā)越來越方便了,Java 14 除了垃圾回收器優(yōu)化的比較多之外,還提供了幾個非常實用的語法特性,例如 instanceof 比對并賦值,還有簡潔的 Switch 和 Records,不過 Records 特性還是預覽功能,意味著很可能在后續(xù)的版本中移除哦,它也不能完全替代 Lombok,畢竟它繼承了 Record,還有被 final 關鍵字修飾等局限,期待下個版本會有更多的驚喜。

參考 & 鳴謝

官方日志:https://jdk.java.net/14/release-notes

【END】

近期熱文

?
  • 阿里巴巴Java開發(fā)手冊建議設置HashMap的初始容量,但設置多少合適呢?

  • 面試又翻車了!這次竟然和Random有關?

  • 因為我說:volatile是輕量級的synchronized,面試官讓我回去等通知!

關注下方二維碼,訂閱更多精彩內容

朕已閱?

總結

以上是生活随笔為你收集整理的Java14发布!Switch竟如此简单?Lombok也不需要了?来用Idea搭建Java14吧!​的全部內容,希望文章能夠幫你解決所遇到的問題。

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