??Java17 發(fā)布了测萎,YYDS亡电!重磅!Oracle 宣布 JDK 17 可以免費商用了硅瞧。份乒。

不過,蘋果 13 確實不那么 13 香腕唧,庫克一如既往在擠牙膏式的更新或辖。

對比之下,我覺得還是 JDK 17 比較香枣接,除了新增了不少新特性颂暇,Oracle 官方竟然宣布 JDK 17 可以免費商用了

image

從官方的聲明中可以看得出:Oracle JDK 17 和未來的 JDK 版本是在免費使用許可下提供的但惶,直到下一個 LTS 版本發(fā)布整整一年耳鸯。

LTS 是什么意思呢湿蛔?就是 Long-Term-Support,長期支持版本县爬,不同于 16煌集、15、14捌省、13、12 這些過渡版本碉钠。

生產環(huán)境下纲缓,最常用的三個版本,就是 JDK 6喊废、JDK 8祝高、JDK 11,JDK 17 會不會是下一個呢污筷?

image

上面這張圖是 Oracle 官方給出的 Oracle JDK 支持的時間線工闺。可以看得到瓣蛀,JDK 17 最多可以支持到 2029 年 9 月份陆蟆,長達 8 年!

按照技術更新迭代的速度惋增,8 年時間叠殷,真不短了!

以 Oracle 的尿性來看诈皿,這次免費商用 8 年可謂是良苦用心林束,為的就是讓使用者放心大膽地將 JDK 升級到 JDK 17。

不過稽亏,好像 JDK 8 支持的時間更長壶冒,可以延長到 2030 年 12 月。似乎我又發(fā)現了什么真理:他強任他強截歉,我用 Java 8 胖腾!

推薦一下二哥在 GitHub 上開源的《Java 程序員進階之路》專欄吧!風趣幽默怎披、通俗易懂胸嘁,對 Java 初學者極度友好和舒適??,內容包括但不限于 Java 語法凉逛、Java 集合框架性宏、Java IO、Java 并發(fā)編程状飞、Java 虛擬機等核心知識點毫胜。

GitHub 地址:https://github.com/itwanger/toBeBetterJavaer

image

JDK 17 之前书斜,LTS 版本都是 3 年發(fā)布一次,11 是 2018 年酵使,8 是 2014 年荐吉,7 是 2011 年。

之后呢口渔,Oracle 計劃每兩年發(fā)布一次未來的 LTS 版本样屠,也就是說,下一個 LTS 版本缺脉,也就是 JDK 21 將于 2023 年 9 月份發(fā)布痪欲。

技術更新迭代的速度又快了呀!

這里強調一點哈攻礼,非長期支持版本一定不要用于生產環(huán)境业踢,不過拿來作為學習的對象還是可以的。

JDK 17 提供了 14 個 JEP(JDK Enhancement Proposal礁扮,JDK 增強建議)知举,也就是 14 個新特性,我們來一睹為快太伊!

特性 說明
306:Restore Always-Strict Floating-Point Semantics 恢復始終執(zhí)行嚴格模式的浮點定義
356:Enhanced Pseudo-Random Number Generators 增強型偽隨機數生成器
382:New macOS Rendering Pipeline 新的 macOS 渲染管道
391:macOS/AArch64 Port macOS AArch64 端口
398:Deprecate the Applet API for Removal 棄用 Applet API
403:Strongly Encapsulate JDK Internals JDK 內部強封裝
406:Pattern Matching for switch (Preview) 為 switch 支持模式匹配
407:Remove RMI Activation 移除 RMI 激活
409:Sealed Classes 密封類
410:Remove the Experimental AOT and JIT Compiler 移除實驗性的 AOT 和 JIT 編譯器
411:Deprecate the Security Manager for Removal 棄用安全管理器
412:Foreign Function & Memory API (Incubator) 外部函數和內存 API(孵化中)
414:Vector API (Second Incubator) 矢量 API(二次孵化中)
415:Context-Specific Deserialization Filters 上下文特定反序列化過濾器

Java 語言增強

JEP 409:密封類雇锡,密封的類和接口,可以限制其他類或接口擴展或實現它們倦畅。

public abstract sealed class Shape permits Circle{

}

類 Shape 被關鍵字 sealed 修飾遮糖,表明它是一個密封類。這個密封類必須要指定它被哪些類繼承叠赐,比如說 Circle:

public final class Circle extends Shape {
}

Circle 類必須用 final 關鍵字修飾欲账,表明它不能再被其他類繼承了。

這個密封類就有意思了芭概,我只允許誰誰誰繼承赛不,就有點指定繼承權的內味了。

庫的更新和改進

JEP 306:恢復始終執(zhí)行嚴格模式的浮點定義罢洲。Java 最初只有嚴格的浮點語義踢故,但從 JDK 1.2 開始,為了適應當時硬件架構的限制惹苗,默認情況下允許這些嚴格語義中的細微變化殿较,而現在這些都沒有必要了。

JEP 356:增強型偽隨機數生成器桩蓉。為偽隨機數生成器 (PRNG) 提供新的接口類型和實現淋纲。

JEP 382:新的 macOS 渲染管道。 使用 Apple Metal API 為 macOS 實現了 Java 2D 渲染管道院究。新管道減少了 JDK 對已棄用的 Apple OpenGL API 的依賴洽瞬。

新平臺支持

JEP 391:macOS AArch64 端口本涕。該端口允許將 Java 應用程序在新的基于 Arm 64 的 Apple Silicon 計算機上運行。

刪除和棄用

JEP 398:棄用 Applet API伙窃。Applet 是一種運行在 Web 瀏覽器內的 Java 程序菩颖,早就過時了,刪除很有必要为障。

JEP 407:刪除了遠程方法調用 (RMI) 激活機制晦闰。

JEP 410:刪除實驗性的 AOT 和 JIT 編譯器,這兩個實驗功能并沒有被廣泛使用鳍怨,刪了省得維護鹅髓。

JEP 411:棄用安全管理器。安全管理器可追溯到 Java 1.0京景,但多年來并沒有起到很好的保護作用,刪除了省心骗奖。

面向未來的 Java 程序

JEP 403:JDK 內部強封裝确徙,限制外部對 JDK 內部類進行訪問,此更改會使應用程序更安全执桌,并減少對非標準鄙皇、內部 JDK 實現細節(jié)的依賴。

后續(xù) JDK 版本的預覽和孵化器

JEP 406 : 為 switch 支持模式匹配仰挣。

我們希望將一個變量 o 與多個備選方案進行比較伴逸,但之前的 switch 不支持使用 instanceof 的模式匹配,于是我們只能用 if-else 來實現膘壶。

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;
}

JDK 17 在模式匹配的基礎上提供了 switch 語句的支持:

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();
    };
}

這樣寫是不是就瞬間高大上了許多错蝴,舒服。

JEP 412:外部函數和內存 API(孵化器)颓芭。通過有效調用外部函數(JVM 外部的代碼)顷锰,并通過安全訪問外部內存,這使得 Java 程序能夠調用本機庫并處理本機數據亡问,而沒有 Java 本機接口 (JNI) 的脆弱性和復雜性官紫。

JEP 414:矢量 API(第二孵化器)。Vector API 由JEP 338 提出并作為孵化 API 集成到 Java 16 中州藕。

Vector API 旨在通過提供一種在 Java 中編寫復雜矢量算法的方法來提高矢量化計算的可預測和健壯性束世。許多領域都可以從這個顯式向量 API 中受益,包括機器學習床玻、線性代數毁涉、密碼學、金融和 JDK 本身的代碼笨枯。

官方鏈接:https://www.oracle.com/news/announcement/oracle-releases-java-17-2021-09-14/


講良心話薪丁,JDK 更新的頻率是比以前更快了遇西,但開發(fā)者的習慣仍然停留在 JDK 8 甚至 JDK 6 的層面上。

主動升級到 JDK 11 的并不多严嗜,尤其是 Oracle 搞出商業(yè)收費后粱檀,大家升級的意愿就更淡了。

不知道是不是出于開源或者叫免費的壓力漫玄,JDK 17 宣布可以免費商用了茄蚯,并且打算以后的版本也保持這樣。

這對使用者來說睦优,無疑是一罐蜜糖渗常,長達 8 年的時間支持,也許大家會愿意升級到 JDK 17 了汗盘!

大家覺得呢皱碘?

我是二哥呀,沒有什么使我停留——除了目的隐孽,縱然岸旁有玫瑰癌椿、有綠蔭、有寧靜的港灣菱阵,我是不系之舟踢俄。

?著作權歸作者所有,轉載或內容合作請聯系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市晴及,隨后出現的幾起案子都办,更是在濱河造成了極大的恐慌,老刑警劉巖虑稼,帶你破解...
    沈念sama閱讀 217,542評論 6 504
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件琳钉,死亡現場離奇詭異,居然都是意外死亡蛛倦,警方通過查閱死者的電腦和手機槽卫,發(fā)現死者居然都...
    沈念sama閱讀 92,822評論 3 394
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來胰蝠,“玉大人歼培,你說我怎么就攤上這事∪兹” “怎么了躲庄?”我有些...
    開封第一講書人閱讀 163,912評論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長钾虐。 經常有香客問我噪窘,道長,這世上最難降的妖魔是什么效扫? 我笑而不...
    開封第一講書人閱讀 58,449評論 1 293
  • 正文 為了忘掉前任倔监,我火速辦了婚禮直砂,結果婚禮上,老公的妹妹穿的比我還像新娘浩习。我一直安慰自己静暂,他們只是感情好,可當我...
    茶點故事閱讀 67,500評論 6 392
  • 文/花漫 我一把揭開白布谱秽。 她就那樣靜靜地躺著洽蛀,像睡著了一般。 火紅的嫁衣襯著肌膚如雪疟赊。 梳的紋絲不亂的頭發(fā)上郊供,一...
    開封第一講書人閱讀 51,370評論 1 302
  • 那天,我揣著相機與錄音近哟,去河邊找鬼驮审。 笑死,一個胖子當著我的面吹牛吉执,可吹牛的內容都是我干的头岔。 我是一名探鬼主播,決...
    沈念sama閱讀 40,193評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼鼠证,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了靠抑?” 一聲冷哼從身側響起量九,我...
    開封第一講書人閱讀 39,074評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎颂碧,沒想到半個月后荠列,有當地人在樹林里發(fā)現了一具尸體,經...
    沈念sama閱讀 45,505評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡载城,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 37,722評論 3 335
  • 正文 我和宋清朗相戀三年肌似,在試婚紗的時候發(fā)現自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片诉瓦。...
    茶點故事閱讀 39,841評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡川队,死狀恐怖,靈堂內的尸體忽然破棺而出睬澡,到底是詐尸還是另有隱情固额,我是刑警寧澤,帶...
    沈念sama閱讀 35,569評論 5 345
  • 正文 年R本政府宣布煞聪,位于F島的核電站斗躏,受9級特大地震影響,放射性物質發(fā)生泄漏昔脯。R本人自食惡果不足惜啄糙,卻給世界環(huán)境...
    茶點故事閱讀 41,168評論 3 328
  • 文/蒙蒙 一笛臣、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧隧饼,春花似錦沈堡、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,783評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至贵白,卻和暖如春率拒,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背禁荒。 一陣腳步聲響...
    開封第一講書人閱讀 32,918評論 1 269
  • 我被黑心中介騙來泰國打工猬膨, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人呛伴。 一個月前我還...
    沈念sama閱讀 47,962評論 2 370
  • 正文 我出身青樓勃痴,卻偏偏與公主長得像,于是被迫代替她去往敵國和親热康。 傳聞我的和親對象是個殘疾皇子沛申,可洞房花燭夜當晚...
    茶點故事閱讀 44,781評論 2 354

推薦閱讀更多精彩內容