來源:程序小媛
從Java 8 到 Java 20,Java 已經(jīng)走過了漫長(zhǎng)的道路,自 Java 8 以來,Java 生態(tài)系統(tǒng)發(fā)生了很多變化。最顯著的變化是 Java 的發(fā)布節(jié)奏。Java 8 于 2014 年發(fā)布,Java 17 于 2021 年發(fā)布。這兩個(gè)版本之間相隔了 7 年。Java17是一個(gè)長(zhǎng)期支持(LTS)的版本,會(huì)有更穩(wěn)定和持久的維護(hù)和更新。
如果你和我一樣,已經(jīng)使用Java 8很長(zhǎng)時(shí)間了,覺得需要了解一下Java的新特性,那么這篇文章就是為你準(zhǔn)備的。
自從Java 8以來,Java增加了很多新特性,但并不是所有的特性都有用和受歡迎。所以我整理了一個(gè)列表,列出了自Java 8以來Java增加的最受開發(fā)者歡迎的特性,你可以用它作為參考來遷移。
1.局部變量類型推斷
這是自 Java 8 以來添加到 Java 中的最受歡迎的功能之一。它允許你在不指定類型的情況下聲明局部變量。類型是從表達(dá)式的右側(cè)推斷出來的。此功能也稱為var類型。
在上面的示例中,兩個(gè)程序?qū)⑸上嗤妮敵觯?Java 10 的情況下,我們使用而var不是指定類型。
2.switch表達(dá)式
在 Java 14 中使用 switch 表達(dá)式時(shí),你不必使用關(guān)鍵字break來跳出 switch 語句或return在每個(gè) switch case 上使用關(guān)鍵字來返回值;相反,你可以返回整個(gè) switch 表達(dá)式。這種增強(qiáng)的 switch 表達(dá)式使整體代碼看起來更清晰,更易于閱讀。
3.文本塊
文本塊是 Java 15 中添加的一項(xiàng)新功能。它允許你在不使用轉(zhuǎn)義序列的情況下創(chuàng)建多行字符串。這在你創(chuàng)建 SQL 查詢或 JSON 字符串時(shí)非常有用。在下面的示例中,你可以看到使用文本塊時(shí)代碼看起來更加簡(jiǎn)潔。
4.Records
記錄Records是添加到 Java 14 的一項(xiàng)新功能。它允許你創(chuàng)建用于存儲(chǔ)數(shù)據(jù)的類。它類似于 POJO 類,但代碼少得多;大多數(shù)開發(fā)人員使用 Lombok 生成 POJO 類,但是有了記錄,你就不需要使用任何第三方庫(kù)。在下面的示例中,你可以看到創(chuàng)建記錄類所需的代碼非常少。
5.模式匹配instanceof
模式匹配instanceof是 Java 16 中添加的一項(xiàng)新功能。它允許你將instanceof運(yùn)算符用作返回已轉(zhuǎn)換對(duì)象的表達(dá)式。當(dāng)你使用嵌套的 if-else 語句時(shí),這非常有用。在下面的示例中,你可以看到我們?nèi)绾问褂胕nstanceof運(yùn)算符來捕獲Employee對(duì)象,而不是進(jìn)行顯式轉(zhuǎn)換。
6.密封類
密封類是添加到 Java 17 中的一項(xiàng)新功能。它允許你將類或接口的繼承限制為一組有限的子類。當(dāng)你想將類或接口的繼承限制為一組有限的子類時(shí),這非常有用。在下面的示例中,你可以看到我們?nèi)绾问褂胹ealed關(guān)鍵字將類的繼承限制為一組有限的子類。
密封類的子類可以聲明為final或non-sealed。final 子類不能進(jìn)一步擴(kuò)展,而非密封子類可以進(jìn)一步擴(kuò)展。
7.有用的 NullPointerException
NullPointerExceptions 是 Java 14 中添加的一項(xiàng)新功能。它允許你獲取有關(guān)NullPointerExceptions. 這在調(diào)試時(shí)非常有用NullPointerExceptions。在下面的示例中,你可以看到相同的代碼如何NullPointerExceptions在 Java 8 和 Java 14 中生成不同的結(jié)果,但在 Java 14 中,你可以獲得有關(guān)異常的更多信息
我沒有介紹自 Java 17 以來添加到 Java 的所有功能,但介紹了最流行的功能。如果你想了解更多關(guān)于 Java 的新特性,可以查看下面提供的鏈接。
審核編輯:湯梓紅
-
JAVA
+關(guān)注
關(guān)注
19文章
2973瀏覽量
104896 -
Switch
+關(guān)注
關(guān)注
1文章
533瀏覽量
58307 -
程序
+關(guān)注
關(guān)注
117文章
3793瀏覽量
81205 -
代碼
+關(guān)注
關(guān)注
30文章
4807瀏覽量
68787
原文標(biāo)題:7個(gè)理由:從Java8升級(jí)到Java17
文章出處:【微信號(hào):芋道源碼,微信公眾號(hào):芋道源碼】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論