JDK 15:Java 15中的新功能

隨着Java 14於3月17日全面上市,繼任者Java 15的開發工作將於2020年9月開始。到目前爲止,已經計劃對該發行版進行五項正式更改,最新的更改是隱藏類。先前的建議包括添加文本塊,添加Z和Shenandoah垃圾收集器以及刪除Nashorn JavaScript引擎。
所有這五個建議都針對Java開發工具包(JDK)15,這是下一版Java SE(標準版)的基礎。截至2020年4月6日,文本塊和Nashorn的刪除已正式成爲JDK 15的目標,而其他三個仍處於“擬定目標”階段。
OpenJDK 15提案的詳細信息:
隱藏的類,即不能被其他類的字節碼直接使用的類,供在運行時生成類並通過反射間接使用它們的框架使用。可以將隱藏類定義爲訪問控制嵌套的成員並且可以獨立於其他類進行卸載。該提案將通過啓用標準API來定義無法發現且具有有限生命週期的隱藏類,從而提高JVM上所有語言的效率。JDK內部和外部的框架將能夠動態生成可以代替定義隱藏類的類。基於JVM構建的許多語言都依靠動態類生成來提高靈活性和效率。該提案的目標包括:允許框架將類定義爲框架的不可發現的實現細節,因此它們不能被其他類鏈接,也不能通過反射來發現;支持使用不可發現的類擴展訪問控制嵌套;並支持積極卸載不可發現的類,因此,框架可以靈活地定義所需的數量。另一個目標是棄用非標準API, misc.Unsafe::defineAnonymousClass,目的是不建議在以後的版本中將其刪除。另外,由於此提議,Java語言也不會更改。
根據該提議,Z垃圾收集器(ZGC)將從實驗功能升級爲產品。ZGC已集成到2018年9月發佈的JDK 11中,是一個可擴展的低延遲垃圾回收器。引入ZGC是一項實驗功能,因爲Java的開發人員決定應謹慎而逐步地引入這種大小和複雜性的功能。從那時起,已經添加了許多改進,從併發類卸載,未使用內存的未提交,對數據類共享的支持到改進的NUMA感知和多線程堆預觸。此外,最大堆大小已從4 TB增加到16 TB。支持的平臺包括Linux,Windows和MacOS。
文本塊,在JDK 14和JDK 13中均已預覽旨在通過簡化表示跨越幾行源代碼的字符串的方式來簡化編寫Java程序的任務,同時避免常見情況下的轉義序列。文本塊是一種多行字符串文字,它避免了大多數轉義序列的需要,以可預測的方式自動設置字符串格式,並在需要時爲開發人員提供了對該格式的控制權。文本塊建議的目標是提高Java程序中字符串的可讀性,這些Java程序表示用非Java語言編寫的代碼。另一個目標是通過規定任何新構造都可以表示與字符串文字相同的字符串集,解釋相同的轉義序列並以與字符串文字相同的方式進行操作來支持從字符串文字的遷移。
在雪蘭低暫停時間的垃圾收集器將成爲一個生產特點和移動實驗階段的出來。一年前已將其集成到JDK中。
Nashorn的刪除於2014年3月在JDK 8中首次亮相,但此後已被諸如GraalVM之類的技術淘汰。OpenJDK 15提案要求刪除Nashorn API和用於調用Nashorn的jjs命令行工具。
可以在java.jdk.net上找到JDK 15的早期訪問版本。根據Oracle六個月的發佈節奏,JDK 15將是一個短期功能發佈,支持六個月 。下一個長期支持(LTS)版本將獲得幾年的支持,它將是JDK 17,該版本將於2021年9月到貨。當前的LTS版本是JDK 11,該版本於2018年9月發佈。
最後,開發這麼多年我也總結了一套學習Java的資料與面試題,如果你在技術上面想提升自己的話,可以關注我,私信發送領取資料或者在評論區留下自己的聯繫方式,有時間記得幫我點下轉發讓跟多的人看到哦。在這裏插入圖片描述

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