Java 17 更快的 LTS 節(jié)奏
Java 17 更新了,作為一個 10 年的 Java 程序員,還是有億點點興奮的,Kotlin 的群里面也是各種討論 Java 的新特性。
我記得五六年前,談?wù)撈甬?dāng)時剛剛進(jìn)入人們視野不久的 Java 8,大家還是一副“我們公司還在用 Java 6” 的表情,現(xiàn)在想想 RetroLambda 都已經(jīng)是很久遠(yuǎn)的事兒了:
現(xiàn)在的 Java 8 可能大概相當(dāng)于那時候的 Java 6,在使用上已經(jīng)非常普遍了,甚至已經(jīng)有一點兒過時:就連 Android
最近也開始從最新的 Android Studio
版本開始把 Java 11 作為默認(rèn)版本了。
現(xiàn)在 Java 17 的發(fā)布,讓 Java 11 成了 LTS 系列的次新版本,Java 8
離老破小的距離也越來越近了 —— 不僅如此,Java 官方還想要加快這個節(jié)奏,因為他們打算把 LTS 發(fā)布的節(jié)奏從三年縮短到兩年。這么看來,下一個 LTS 將會是在 2023 年 9 月發(fā)布的 Java 21。
想當(dāng)年,Java 的版本發(fā)布以前是何其佛系,版本號也是 1.x 這樣一路走來,從 1.0 (1996 年) 發(fā)布到 1.5(2004年) 就花了近 10 年,然后又花了差不多 10 年到了 1.8(2014 年)。這其中從 1.5 開始啟用了新的版本號命名方式,即 Java SE 5,Java SE 8 這樣的叫法。直到現(xiàn)在,2021 年,不管 Java 有沒有變化,Java 的版本號已經(jīng)發(fā)生了質(zhì)的飛躍。
從 2017 年 9 月發(fā)布 Java 9 開始,Java 進(jìn)入每 6 個月一個版本的節(jié)奏。這對于開發(fā)者來講是好事,喜歡嘗鮮的開發(fā)者可以很快地在非 LTS 版本當(dāng)中體驗到 Java 的新特性。
做出這個改變的時間點是非常微妙的,因為 Kotlin 1.0
是 2016 年 2 月發(fā)布的,Google 在 2017 年 5 月官宣 Kotlin 為 Android 的一級開發(fā)語言(首選語言的宣布是在 2019 年的 IO 大會上)。
后來我們就看到,Java 越來越像 Kotlin
了,Java 10 有了 var:
var list = new ArrayList<String>(); // infers ArrayList<String> var stream = list.stream(); // infers Stream<String>
Java 13 有了多行字符串字面量:
String html = """ <HTML lang="en"> <body> <p>Hello, world</p> </body> </html> """;
Java 14 有了 switch 表達(dá)式(12 開始預(yù)覽):
int ndays = switch(month) { case JAN, MAR, MAY, JUL, AUG, OCT, DEC -> 31; case APR, JUN, SEP, NOV -> 30; case FEB -> { if (year % 400 == 0) yield 29; else if (year % 100 == 0) yield 28; else if (year % 4 == 0) yield 29; else yield 28; } };
Java 16 加入了類型判斷的模式匹配(Java 14 開始預(yù)覽),以下示例在效果上類似于 Kotlin 的智能類型轉(zhuǎn)換:
if (obj instanceof String s) { System.out.println( s.length() ); }
還有數(shù)據(jù)類(Java 14 開始預(yù)覽):
record Point(int x, int y) { } Point p = new Point(3,4); System.out.println( p.x() );
可以說,Java 重新煥發(fā)了生機,喜歡 Java
的開發(fā)者們再也不必等待漫長的版本更新了。
到此這篇關(guān)于Java 17 更快的 LTS 節(jié)奏的文章就介紹到這了,更多相關(guān)Java 17中的LTS內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
SpringMVC前端和后端數(shù)據(jù)交互總結(jié)
本篇文章主要介紹了SpringMVC前端和后端數(shù)據(jù)交互總結(jié),具有一定的參考價值,感興趣的小伙伴們可以參考一下。2017-03-03解決Unable to start embedded container&nbs
這篇文章主要介紹了解決Unable to start embedded container SpringBoot啟動報錯問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2023-07-07詳解SpringBoot中@ConditionalOnClass注解的使用
這篇文章主要和大家詳細(xì)介紹一下springboot中@ConditionalOnClass注解的用法,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以了解一下2022-08-08IDEA2023版本創(chuàng)建Spring項目只能勾選17和21卻無法使用Java8的完美解決方案
想創(chuàng)建一個springboot的項目,本地安裝的是1.8,但是在使用Spring Initializr創(chuàng)建項目時,發(fā)現(xiàn)版本只有17和21,這篇文章主要介紹了IDEA2023版本創(chuàng)建Sping項目只能勾選17和21,卻無法使用Java8的解決方法,需要的朋友可以參考下2023-12-12mybatis?resultMap之collection聚集兩種實現(xiàn)方式
本文主要介紹了mybatis?resultMap之collection聚集兩種實現(xiàn)方式,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2024-09-09