精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

SpringBoot 3.0 最低版本要求的JDK 17,這幾個新特性不能不知道!

開發(fā) 架構(gòu)
這里所謂的新特性,不只是 JDK 17中新增的,而是 JDK 17和 JDK 8相比,新增的特性。

最近,有很多人在傳說 SpringBoot要出3.0的版本了,并且宣布不再支持 Java 8,最低要求是 Java 17了。

其實(shí),早在2021年9月份,關(guān)于 Spring Framework 6.0的消息出來的時候,Spring 官方就已經(jīng)明確了不會向下兼容,最低的 JDK 版本是 JDK 17。

2022年,Spring Framework 6.0和 SpringBoot 3.0都會推出,在此之前,Java社區(qū)很堅(jiān)挺,一直是"新版任你發(fā),我用Java 8",不管新版本怎么出,很少有人愿意升級。

這一次,Spring 直接來了個大招,跨過 JDK 8-16,直接升級到 JDK 17 ,不知道會對 Java生態(tài)產(chǎn)生怎樣的影響。

為什么是 Java 17

這么多新版本的 JDK,而且2022年還會推出 JDK 18 和 JDK 19,為什么 Spring 選擇了 JDK 17呢。主要是因?yàn)樗且粋€ LTS版本,所謂 LTS,是 Long Term Support,也就是官方保證會長期支持的版本。從 JDK 誕生到現(xiàn)在,還在長期支持的版本主要有 JDK 7、JDK 8 、JDK 11以及 JDK 17

這一次 Spring直接跨越了 JDK 11,升級到 JDK 17,主要的考慮應(yīng)該是因?yàn)镴DK 17有更多的新特性支持。

接下來我們介紹幾個新特性,這些新特性都是我們開發(fā)者息息相關(guān)的,或者說是會影響我們寫代碼的。

JDK 17 支持的新特性

這里所謂的新特性,不只是 JDK 17中新增的,而是 JDK 17和 JDK 8相比,新增的特性。

本地變量類型推斷

在Java 10之前版本中,我們想定義定義局部變量時。我們需要在賦值的左側(cè)提供顯式類型,并在賦值的右邊提供實(shí)現(xiàn)類型:

MyObject value = new MyObject();

在Java 10中,提供了本地變量類型推斷的功能,可以通過var聲明變量:

var value = new MyObject();

本地變量類型推斷將引入“var”關(guān)鍵字,而不需要顯式的規(guī)范變量的類型。其實(shí),所謂的本地變量類型推斷,也是Java 10提供給開發(fā)者的語法糖。雖然我們在代碼中使用var進(jìn)行了定義,但是對于虛擬機(jī)來說他是不認(rèn)識這個var的,在java文件編譯成class文件的過程中,會進(jìn)行解糖,使用變量真正的類型來替代var(詳細(xì)信息可以參考:我反編譯了Java 10的本地變量類型推斷)

Switch 表達(dá)式

在JDK 12中引入了Switch表達(dá)式作為預(yù)覽特性。并在Java 13中修改了這個特性,引入了yield語句,用于返回值。而在之后的Java 14中,這一功能正式作為標(biāo)準(zhǔn)功能提供出來。在以前,我們想要在switch中返回內(nèi)容,還是比較麻煩的,一般語法如下:

   int i;

switch (x) {

case "1":

i=1;

break;

case "2":

i=2;

break;

default:

i = x.length();

break;

}

在JDK13中使用以下語法:

    int i = switch (x) {

case "1" -> 1;

case "2" -> 2;

default -> {

int len = args[1].length();

yield len;

}

};

或者

    int i = switch (x) {

case "1": yield 1;

case "2": yield 2;

default: {

int len = args[1].length();

yield len;

}

};

在這之后,switch中就多了一個關(guān)鍵字用于跳出switch塊了,那就是yield,他用于返回一個值。和return的區(qū)別在于:return會直接跳出當(dāng)前循環(huán)或者方法,而yield只會跳出當(dāng)前switch塊。

Text Blocks

Java 13中提供了一個Text Blocks的預(yù)覽特性,并且在Java 14中提供了第二個版本的預(yù)覽。text block,文本塊,是一個多行字符串文字,它避免了對大多數(shù)轉(zhuǎn)義序列的需要,以可預(yù)測的方式自動格式化字符串,并在需要時讓開發(fā)人員控制格式。我們以前從外部copy一段文本串到Java中,會被自動轉(zhuǎn)義,如有一段以下字符串:

    <html>

<body>

<p>Hello, world</p>

</body>

</html>

將其復(fù)制到Java的字符串中,會展示成以下內(nèi)容:

    "<html>\n" +

" <body>\n" +

" <p>Hello, world</p>\n" +

" </body>\n" +

"</html>\n";

即被自動進(jìn)行了轉(zhuǎn)義,這樣的字符串看起來不是很直觀,在JDK 13中,就可以使用以下語法了:

    """

<html>

<body>

<p>Hello, world</p>

</body>

</html>

""";

使用“”“作為文本塊的開始符和結(jié)束符,在其中就可以放置多行的字符串,不需要進(jìn)行任何轉(zhuǎn)義。看起來就十分清爽了。如常見的SQL語句:

    String query = """

SELECT `EMP_ID`, `LAST_NAME` FROM `EMPLOYEE_TB`

WHERE `CITY` = 'INDIANAPOLIS'

ORDER BY `EMP_ID`, `LAST_NAME`;

""";

看起來就比較直觀,清爽了。

Records

Java 14 中便包含了一個新特性:EP 359: Records,Records的目標(biāo)是擴(kuò)展Java語言語法,Records為聲明類提供了一種緊湊的語法,用于創(chuàng)建一種類中是“字段,只是字段,除了字段什么都沒有”的類。通過對類做這樣的聲明,編譯器可以通過自動創(chuàng)建所有方法并讓所有字段參與hashCode()等方法。這是JDK 14中的一個預(yù)覽特性。使用record關(guān)鍵字可以定義一個記錄:

record Person (String firstName, String lastName) {}

record 解決了使用類作為數(shù)據(jù)包裝器的一個常見問題。純數(shù)據(jù)類從幾行代碼顯著地簡化為一行代碼。(詳見:Java 14 發(fā)布了,不使用”class”也能定義類了?還順手要干掉Lombok!)

封閉類

在Java 15之前,Java認(rèn)為"代碼重用"始終是一個終極目標(biāo),所以,一個類和接口都可以被任意的類實(shí)現(xiàn)或繼承。但是,在很多場景中,這樣做是容易造成錯誤的,而且也不符合物理世界的真實(shí)規(guī)律。例如,假設(shè)一個業(yè)務(wù)領(lǐng)域只適用于汽車和卡車,而不適用于摩托車。在Java中創(chuàng)建Vehicle抽象類時,應(yīng)該只允許Car和Truck類擴(kuò)展它。通過這種方式,我們希望確保在域內(nèi)不會出現(xiàn)誤用Vehicle抽象類的情況。為了解決類似的問題,在Java 15中引入了一個新的特性——密閉。想要定義一個密閉接口,可以將sealed修飾符應(yīng)用到接口的聲明中。然后,permit子句指定允許實(shí)現(xiàn)密閉接口的類:

    public sealed interface Service permits Car, Truck {

}

以上代碼定義了一個密閉接口Service,它規(guī)定只能被Car和Truck兩個類實(shí)現(xiàn)。與接口類似,我們可以通過使用相同的sealed修飾符來定義密閉類:

   public abstract sealed class Vehicle permits Car, Truck {

}

通過密閉特性,我們定義出來的Vehicle類只能被Car和Truck繼承。

instanceof 模式匹配

instanceof是Java中的一個關(guān)鍵字,我們在對類型做強(qiáng)制轉(zhuǎn)換之前,會使用instanceof做一次判斷,例如:

    if (animal instanceof Cat) {

Cat cat = (Cat) animal;

cat.miaow();

} else if (animal instanceof Dog) {

Dog dog = (Dog) animal;

dog.bark();

}

Java 14帶來了改進(jìn)版的instanceof操作符,這意味著我們可以用更簡潔的方式寫出之前的代碼例子:

    if (animal instanceof Cat cat) {

cat.miaow();

} else if(animal instanceof Dog dog) {

dog.bark();

}

我們都不難發(fā)現(xiàn)這種寫法大大簡化了代碼,省略了顯式強(qiáng)制類型轉(zhuǎn)換的過程,可讀性也大大提高了。

switch 模式匹配

基于instanceof模式匹配這個特性,我們可以使用如下方式來對對象o進(jìn)行處理:

    static String formatter(Object o) {

String formatted = "unknown";

if (o instanceof Integer i) {

formatted = String.format("int %d", i);

} else if (o instanceof Long l) {

formatted = String.format("long %d", l);

} else if (o instanceof Double d) {

formatted = String.format("double %f", d);

} else if (o instanceof String s) {

formatted = String.format("String %s", s);

}

return formatted;

}

可以看到,這里使用了很多if-else,其實(shí),Java中給我們提供了一個多路比較的工具,那就是switch,而且從Java 14開始支持switch表達(dá)式,但switch的功能一直都是非常有限的。在Java 17中,Java的工程師們擴(kuò)展了switch語句和表達(dá)式,使其可以適用于任何類型,并允許case標(biāo)簽中不僅帶有變量,還能帶有模式匹配。我們就可以更清楚、更可靠地重寫上述代碼,例如:

    static String formatterPatternSwitch(Object o) {

return switch (o) {

case Integer i -> String.format("int %d", i);

case Long l -> String.format("long %d", l);

case Double d -> String.format("double %f", d);

case String s -> String.format("String %s", s);

default -> o.toString();

};

}

可以看到,以上的switch處理的是一個Object類型,而且case中也不再是精確的值匹配,而是模式匹配了。

總結(jié)以上,我們介紹了幾個從 JDK 9開始,一直到 JDK 17中的幾個能夠改變我們寫代碼的方式的新特性。其實(shí),眾多的版本中,還有一些其他的特性及優(yōu)化,我們沒有在這里一一展開。大家感興趣的可以到 JDK 官網(wǎng)查看各個版本的新功能介紹。隨著 Spring Framework 6 和 SpringBoot 3.0的推出,相信會有一些公司在新項(xiàng)目中采用新版本,那么 JDK 17勢必要被應(yīng)用到生產(chǎn)環(huán)境中。以上這些特性,大多數(shù)都是對開發(fā)比較友好的,有機(jī)會的話可以應(yīng)用起來。

責(zé)任編輯:武曉燕 來源: Hollis
相關(guān)推薦

2017-12-25 13:26:36

CNN深度學(xué)習(xí)網(wǎng)絡(luò)

2020-08-18 10:51:18

AIoT數(shù)據(jù)泄露網(wǎng)絡(luò)攻擊

2024-06-03 00:00:05

2019-07-08 10:40:03

線程池策略CPU

2016-12-15 17:15:44

2017-01-16 15:01:27

中安威士

2017-01-19 14:44:14

2021-05-27 05:25:11

SpringLifecycleSmartLifecy

2018-04-16 10:54:00

數(shù)據(jù)中心UPS電池

2009-08-03 09:29:26

2009-06-22 14:17:00

2022-01-05 08:01:48

前端技術(shù)編程

2012-09-17 09:59:46

創(chuàng)業(yè)創(chuàng)業(yè)教訓(xùn)創(chuàng)業(yè)家

2019-11-13 08:37:34

數(shù)據(jù)庫筒倉基礎(chǔ)架構(gòu)

2020-05-09 08:48:21

JavaScript原生方法代碼

2010-04-12 16:59:52

Oracle性能診斷

2017-05-04 11:05:43

互聯(lián)網(wǎng)

2010-06-01 09:48:43

云計(jì)算CIO整合

2009-12-21 15:43:07

2012-11-23 10:57:44

Shell
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號

九九精品视频在线| 一本久久综合亚洲鲁鲁五月天| 在线播放日韩av| 日韩欧美精品在线观看视频| 欧美人体大胆444www| 久久午夜精品| 日韩在线观看你懂的| 国内自拍第二页| 羞羞的视频在线观看| 国产成人在线电影| 韩国精品久久久999| 无码av免费精品一区二区三区| 黄色电影免费在线看| 日韩二区三区四区| 久久精品免费播放| 国产性生活毛片| 免费福利视频一区二区三区| 亚洲国产精品99久久久久久久久| 91国内在线视频| 国产精品麻豆入口| 欧美free嫩15| 亚洲精品国久久99热| 麻豆精品传媒视频| 国产精品色综合| 一区二区国产精品| 色偷偷噜噜噜亚洲男人的天堂| 久草青青在线观看| 蜜桃视频在线观看www社区 | 色婷婷av一区二区三区丝袜美腿| 中文字幕欧美日本乱码一线二线| 97激碰免费视频| 青青草福利视频| 高清不卡一区| 色综合亚洲欧洲| 99久热在线精品视频| 蜜桃成人在线视频| 国产精品综合一区二区三区| 日韩av电影在线网| 欧美片一区二区| 国产区精品区| 亚洲国产中文字幕久久网 | 日批视频在线看| 在线成人av观看| 最新日韩在线视频| 精品一区二区三区日本| 99热这里是精品| 日韩国产欧美三级| 57pao国产成人免费| 中文字幕在线有码| 成人免费av| 国产丝袜一区视频在线观看| 又大又长粗又爽又黄少妇视频| 三级福利片在线观看| 91免费在线看| 丁香五月网久久综合| 亚洲怡红院av| 国产精品毛片一区二区三区| 九九精品在线观看| 一区二区国产精品精华液| 成人同人动漫免费观看| 亚洲精品自拍视频| 亚洲成人精品在线播放| 亚洲精品a区| 欧美精品乱人伦久久久久久| 精品免费国产一区二区| 亚洲人成在线网站| 午夜精品一区二区三区三上悠亚| 久久亚裔精品欧美| 日韩中文字幕观看| 国产不卡免费视频| 91欧美日韩一区| 一本一道精品欧美中文字幕| 蜜臀va亚洲va欧美va天堂| 日本中文字幕不卡免费| 日本一区二区三区精品| 一本久道久久综合狠狠爱| 97视频人免费观看| 欧美成人三级在线观看| 我不卡手机影院| www.久久色.com| 九九热视频在线免费观看| 日韩系列欧美系列| 久久精品亚洲精品| 久久高清内射无套| 中文字幕亚洲综合久久五月天色无吗''| 3d成人动漫网站| 亚洲精品成人在线播放| 欧美三级一区| 日韩免费视频一区| 中国男女全黄大片| 久久a爱视频| 日韩精品亚洲元码| 国产jk精品白丝av在线观看 | 91精品国产91久久久久久密臀| 欧美va日韩va| 污污污www精品国产网站| 欧美毛片免费观看| 日韩av在线一区| 日本黄色www| 国产区精品视频在线观看豆花| 欧美高清hd18日本| 日本中文字幕精品| 在线日韩成人| 亚洲女成人图区| 精品人体无码一区二区三区| 五月开心六月丁香综合色啪| 欧美激情亚洲国产| 91看片在线播放| 久久亚洲精品伦理| 国产欧美日韩中文字幕在线| 国产99视频在线| 91免费精品国自产拍在线不卡 | 开心久久婷婷综合中文字幕| 777欧美精品| 自拍视频一区二区| 日本黄色精品| 午夜精品www| 一二三区中文字幕| 成人国产精品视频| 亚洲欧美久久久久一区二区三区| 五月婷婷丁香网| 中文字幕av一区二区三区高| 国产又黄又爽免费视频| 国产精品13p| 欧美日韩成人一区| 朝桐光av一区二区三区| 91亚洲国产成人久久精品| 久久久这里只有精品视频| 久久亚洲天堂网| 国产麻豆91精品| 欧洲一区二区在线观看| 91网址在线观看| 在线观看视频欧美| www.17c.com喷水少妇| 色777狠狠狠综合伊人| 欧美中文在线观看国产| 国产婷婷一区二区三区久久| 中文成人综合网| 国产精品无码av在线播放| 日韩三级网址| 日韩有码视频在线| 日韩黄色精品视频| 免费成人在线观看| 久久av二区| 午夜成年人在线免费视频| 欧美性大战久久久| 久久无码人妻精品一区二区三区 | 内射一区二区三区| 久久午夜电影| 久久久99爱| 丁香花电影在线观看完整版| 日韩一区二区在线免费观看| 成人一级片免费看| 久久亚洲二区| 欧美性xxxx69| 国产美女福利在线观看| 日韩一区二区免费在线电影| 26uuu成人网| 美女在线一区二区| 色播五月综合| 四虎成人在线| 中文字幕在线视频日韩| 亚洲av无码精品一区二区| 91性感美女视频| 男女激情无遮挡| 久久九九热re6这里有精品| 欧美精品激情在线观看| www.97av| 亚洲综合精品久久| 在线观看亚洲免费视频| 亚洲国产高清一区| 国产成人免费观看| 888av在线视频| 亚洲免费视频在线观看| 日本a级c片免费看三区| 99国产精品一区| a√天堂在线观看| 尤物tv在线精品| 日韩av免费一区| 成人动漫在线播放| 欧美视频在线播放| 亚洲视频重口味| 国产成人免费视| 成人午夜免费在线视频| 国产成年精品| 久久久久久久久久久免费 | 欧美一区二区| 成人激情视频网| av网站在线看| 精品国产一区久久| 成人精品免费在线观看| 久久久精品综合| 99九九99九九九99九他书对| 欧美在线91| 国产偷国产偷亚洲高清97cao| 免费在线看a| 欧美午夜精品一区二区蜜桃| 麻豆明星ai换脸视频| 丁香激情综合五月| 国产午夜伦鲁鲁| 日韩理论电影大全| 91黄在线观看| 国产精品专区免费| 日韩一区二区三区在线播放| 免费国产精品视频| 色诱亚洲精品久久久久久| 少妇的滋味中文字幕bd| 懂色av一区二区三区免费看| 免费国产a级片| 日韩午夜电影网| 国产美女精品久久久| 在线毛片观看| 久久久97精品| 日韩毛片在线一区二区毛片| 欧美区一区二区三区| 日本三级片在线观看| 国产精品福利一区| 99精品一区二区三区无码吞精| 女同性一区二区三区人了人一| 国产精品免费小视频| 三级网站视频在在线播放| 一区二区欧美在线| 黄色av免费观看| 欧美性猛交xxxx乱大交退制版| 久久久久久久毛片| 国产高清不卡一区| 偷窥国产亚洲免费视频| 国产日本在线播放| 欧美激情电影| 蜜桃成人在线| 大胆国模一区二区三区| 国产成人精品a视频一区www| 国内在线免费视频| 久久久精品999| 四虎影视精品成人| 欧美精品在线一区二区| 亚洲视频 欧美视频| 亚洲图片欧美色图| 亚洲欧美另类日本| 久久久777精品电影网影网| 久久久久无码国产精品一区李宗瑞 | 米奇777超碰欧美日韩亚洲| 亚洲www视频| 久久91视频| 91av在线看| h片视频在线观看| 欧美另类99xxxxx| 欧美人xxx| 一区二区欧美日韩视频| 欧美女v视频| 亚洲成av人乱码色午夜| 国产特黄一级片| 欧美精品一卡二卡| 中文字幕有码视频| 欧美日韩一区二区三区不卡 | 最新日韩av在线| 一级黄色片大全| 91网页版在线| 噜噜噜在线视频| 91在线视频播放地址| 美女久久久久久久久| 国产成人精品午夜视频免费| 亚洲高清av一区二区三区| 精品一区二区免费| 波多野结衣国产精品| 精品制服美女久久| 中文字幕成人免费视频| 免费在线观看日韩欧美| 手机在线成人免费视频| 久久国产三级精品| 色七七在线观看| 爽好久久久欧美精品| 日本免费观看网站| 蜜臀久久99精品久久久久久9| 草草视频在线免费观看| 欧美三级在线| 少妇高潮喷水在线观看| 国产精品最新自拍| 国产精品亚洲二区在线观看| 日韩精品一二三四| 一区二区在线播放视频| 美女视频黄久久| 99热这里只有精品在线播放| 麻豆成人av在线| 日本美女久久久| 成人av免费在线| 中文字幕一区二区三区人妻| 欧美国产禁国产网站cc| chinese全程对白| 一二三四区精品视频| 欧美在线观看不卡| 欧美日韩国产综合视频在线观看| 精品人妻无码一区二区性色| 欧美三级韩国三级日本一级| av手机免费看| 国产偷亚洲偷欧美偷精品| 成人高清免费在线播放| 久久久电影免费观看完整版| 欧美草逼视频| 欧日韩在线观看| 亚洲精品三区| 国产视色精品亚洲一区二区| 欧美午夜精彩| 黄色三级中文字幕| 欧美专区在线| 久久出品必属精品| 成人免费视频视频| 激情五月深爱五月| 午夜精品久久久久久久久久久| 久久国产高清视频| 亚洲第一av色| 亚洲午夜激情视频| 亚洲精品97久久| 日本在线视频观看| 91精品国产777在线观看| 久久精品资源| 久久精品日产第一区二区三区乱码| 白嫩白嫩国产精品| 婷婷四月色综合| 亚洲三级色网| 日韩精品xxx| 国产日韩精品久久久| 久久精品女人毛片国产| 欧洲国内综合视频| 免费国产在线观看| 7m精品福利视频导航| 日韩一二三区在线观看| 资源网第一页久久久| 日韩黄色免费网站| 性色av蜜臀av色欲av| 亚洲午夜羞羞片| www.好吊色| 久久精品视频免费播放| 成人全视频在线观看在线播放高清 | 漫画在线观看av| y111111国产精品久久婷婷| 国产精品99久久精品| 免费午夜视频在线观看| caoporm超碰国产精品| 久久r这里只有精品| 91精品麻豆日日躁夜夜躁| 69久久精品| 国产精品丝袜视频| 日韩欧美中文| 手机看片一级片| 国产精品色哟哟| 伊人网免费视频| 综合激情国产一区| 91精品在线免费视频| 自拍偷拍亚洲色图欧美| 麻豆国产91在线播放| 久久福利免费视频| 日韩欧美一区在线观看| 欧美另类tv| 成人免费视频观看视频| 亚洲黄色影片| 97伦伦午夜电影理伦片| 在线视频国产一区| jyzzz在线观看视频| 91精品免费看| 欧美日一区二区在线观看 | 亚洲精品一区二区三区四区五区 | 黄色av一级片| 伊人亚洲福利一区二区三区| 神马久久资源| 手机成人在线| 韩国三级中文字幕hd久久精品| 99久久人妻无码精品系列| 91久久人澡人人添人人爽欧美 | 影音先锋男人看片资源| 在线影院国内精品| 免费在线看黄| 国产91一区二区三区| 一区二区国产精品| 久久久久久九九九九九| 欧美三级日韩三级国产三级| 先锋影音在线资源站91| 久久久精彩视频| 琪琪一区二区三区| 好吊日在线视频| 亚洲成av人乱码色午夜| japanese23hdxxxx日韩| 中国成人在线视频| 成人亚洲一区二区一| av黄色在线播放| 日韩中文在线中文网三级| 亚洲精品v亚洲精品v日韩精品| 老司机av福利| 国产成a人亚洲精| 中文字幕在线看人| 久久精品99久久久香蕉| 久久影院资源站| 五月天亚洲视频| 亚洲二区视频在线| 亚洲麻豆精品| 国内精品二区| 国内精品视频一区二区三区八戒| 久草福利资源在线| 亚洲成人中文字幕| 在线高清欧美|