JDK 12即將發佈,你還學得動嗎?

JDK 12即將在2019年3月19日發佈,下面列出JDK的版本迭代時間表:

由此可知,目前JDK 12已處於Rampdown Phase One階段,所有的新特性已經凍結,不會再針對其他JEP(JDK Enhancement Proposals簡寫,Java增強提案,讀者可前往<http://openjdk.java.net/jeps/0&gt; 查看所有的JEP)。

新特性

JDK 12新特性如下:

編號 名稱 說明
189 Shenandoah: A Low-Pause-Time Garbage Collector (Experimental) 新增名爲Shenandoah 的、低暫停時間的實驗性垃圾收集器;
230 Microbenchmark Suite 新增微基準測試套件(Microbenchmark Suite),使開發人員可以輕鬆運行現有的微基準測試並創建新的基準測試;
325 Switch Expressions (Preview) 對現有Switch表達式改進,使其可以用作語句或表達式。
334 JVM Constants API 引入API來對關鍵類文件(key class-file)和運行時工件(run-time artifacts)的名義描述(nominal descriptions)建模,特別是可從常量池加載的常量。
340 One AArch64 Port, Not Two 在保留32位ARM端口和64位aarch64端口的同時,刪除與arm64 端口相關的所有源碼。
341 Default CDS Archives 在64位平臺上使用默認類列表增強JDK構建過程,從而生成類數據共享(CDS)歸檔。
344 Abortable Mixed Collections for G1 如果G1混合回收超過暫停目標時,使其可中止。
346 Promptly Return Unused Committed Memory from G1 增強G1垃圾收集器,以便在空閒時自動將Java堆內存返回給操作系統。

示例:Switch可支持如下寫法:

// 例如支持這麼寫:
switch (day) {
    case MONDAY, FRIDAY, SUNDAY -> System.out.println(6);
    case TUESDAY                -> System.out.println(7);
    case THURSDAY, SATURDAY     -> System.out.println(8);
    case WEDNESDAY              -> System.out.println(9);
}

新特性分析

由上可知,JDK 12主要是對GC的一些改進,另外對switch提供了新的語法糖。總體改動不大。

JDK 13……

順便看了一下JDK 13的迭代計劃,2019年9月發佈,這不是什麼新鮮事,因爲Java現在就是半年發佈一次版本。有興趣的可前往http://openjdk.java.net/projects/jdk/13/查看相關信息。

討論

你最想要的JDK特性是啥?筆者最想要的是Raw String Literals 特性,類似於Javascript ES6語法中的模板字符串使用它基本可以告別醜陋的字符串拼接!特性詳見 http://openjdk.java.net/jeps/326 ,該特性原計劃在JDK 12發佈的,結果又被幹掉了,詳見: http://mail.openjdk.java.net/pipermail/jdk-dev/2018-December/002402.html 。不過可能是因爲業界呼聲太高,最近又把該特性拿出來重新討論了: https://mail.openjdk.java.net/pipermail/amber-spec-experts/2019-January/000931.html ,但願該特性能早日發佈吧……

拓展閱讀

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章