JDK 15 JAVA 15的新特性展望

JDK 15 JAVA 15的新特性展望html

伴隨着2020的寒冬和新冠病毒的肆虐,JAVA迎來了久未已久的JAVA 14。自從2017年JAVA 9發佈以後,JAVA的發佈版本跟上了敏捷開發的步伐,小步快跑,Java平臺發佈節奏已從每3年以上的主要版本轉變爲每6個月發佈一次功能。如今,每一年的3月和9月都會發布新的版本功能。shell

三月已過,九月還遠嗎?併發

在JAVA 14中,推出了swith的最終版本,而且支持了NVM。框架

今天本文將會展望一下JAVA 15中會帶給咱們的新特性。ide

整體來講有5個JEP將會提交到JAVA 15。性能

什麼?你問我JEP是什麼?設計

JEP的全稱就是JDK Enhancement Proposals,簡單點講就像是一個個對JAVA進行改進提案,這些提案會在合適的時間合適的地點被加入JDK的特定版本。code

下面看下5大提案都有些什麼內容:
JEP 371: Hidden Classeshtm

一般咱們在使用大型的框架或者lambda表達式的時候,會動態生成不少類。可是不幸的是標準的定義類的API:ClassLoader::defineClass 和 Lookup::defineClass不可以區分出這些類是動態生成(運行時生成)的仍是靜態
生成(編譯生成)的。生命週期

通常來講動態生成的類生命週期更短,而且其可見性要更低。可是現有的JDK並無這個功能。

全部有了Hidden Classes的提案,經過Hidden Classes,無論是JDK仍是JDK外部的框架,在生成動態類的時候均可以定義爲Hidden Classes,這樣能夠更加有效的控制這些動態生成類的生命週期和可見性。
JEP 372: 刪除 Nashorn JavaScript Engine

實際上jdk.scripting.nashorn和jdk.scripting.nashorn.shell這兩個在JDK11的時候已經被標記爲deprecated。在JDK15中只是把他們刪除而已。
JEP 377: 新的垃圾回收器ZGC正式上線了

Z Garbage Collector(ZGC)是在JAVA 11中引入的垃圾回收器,但一直都是實驗版本,在JDK 15中,終於要上線了。

ZGC是一個從新設計的併發的垃圾回收器,能夠極大的提高GC的性能。
JEP 378: Text Blocks 標準化

Text Blocks第一次是在JDK 13中以預覽功能出現的JEP 355。而後在JDK 14中又出現了第二個版本JEP 368。終於在JDK 15中能夠有最終版本了。

文本塊是一種多行字符串文字,它避免了大多數轉義序列的須要,以一種可預測的方式自動設置字符串的格式。

HTML example

傳統方式:

String html = "<html>\n" +
" <body>\n" +
" <p>Hello, world</p>\n" +
" </body>\n" +
"</html>\n";

1
2
3
4
5

文本塊方式:

String html = """
<html>
<body>
<p>Hello, world</p>
</body>
</html>
""";

1
2
3
4
5
6
7

SQL example

傳統方式:

String query = "SELECT EMP_ID, LAST_NAME FROM EMPLOYEE_TB\n" +
"WHERE CITY = 'INDIANAPOLIS'\n" +
"ORDER BY EMP_ID, LAST_NAME;\n";

1
2
3

文本塊方式:

String query = """
SELECT EMP_ID, LAST_NAME FROM EMPLOYEE_TB
WHERE CITY = 'INDIANAPOLIS'
ORDER BY EMP_ID, LAST_NAME;
""";

1
2
3
4
5

JEP 379: 新的垃圾回收器Shenandoah上線

Shenandoah和ZGC同樣,是以實驗特性在JAVA 12中引入的JEP 189。如今終於要在JAVA 15中轉正了。
總結

上述就是5大極可能在JAVA 15中實現的新特性,但願你們可以喜歡。

相關文章
相關標籤/搜索