您好,登錄后才能下訂單哦!
這篇文章主要介紹了Java JDK15的新特性和變化有哪些的相關知識,內容詳細易懂,操作簡單快捷,具有一定借鑒價值,相信大家閱讀完這篇Java JDK15的新特性和變化有哪些文章都會有所收獲,下面我們一起來看看吧。
外內存訪問 API 的第二個孵化器,它將使 Java 程序能夠安全和有效地訪問 Java 堆之外的外部內存。此 API 能夠操作各種類型的外部內存,如本機、持久和托管堆。有許多 Java 程序是訪問外部內存的,比如 Ignite
和MapDB
。該API將有助于避免與垃圾收集相關的成本以及與跨進程共享內存以及通過將文件映射到內存來序列化和反序列化內存內容相關的不可預測性。該Java API
目前沒有為訪問外部內存提供令人滿意的解決方案。但是在新的提議中,API
不應該破壞JVM
的安全性。在JDK 14
中,這個功能正在經歷早期的孵化階段,在JDK 15
中還提供了改進。
與接口一樣,密封類也限制其他類或接口可以擴展或實現它們。這個特性的目標包括——允許類或接口的作者來控制哪些代碼負責實現、提供了比限制使用超類的訪問修飾符聲明方式更多選擇,并通過支持對模式的詳盡分析而支持模式匹配的未來發展。
刪除對Solaris/SPARC
、Solaris/x64
和Linux/SPARC
端口的源代碼和構建支持,而在JDK 14
中不贊成刪除這些端口,但可在將來的版本中刪除它們。許多正在開發的項目和功能(如Valhalla、Loom和Panama)需要進行重大更改以適應 CPU 架構和操作系統特定代碼。放棄對Solaris
和SPARC
端口的支持將使OpenJDK
社區的貢獻者加快開發新特性,從而推動平臺向前發展。近年來,Solaris
和SPARC
都被Linux
操作系統和Intel
處理器所取代。
記錄是充當不可變數據的透明載體類,在 JDK 14 中作為早期預覽進行了首次調試之后,它將被包含在 JDK 15 的第二個預覽版本中。計劃的目標包括設計一個面向對象的結構,表達一個簡單的聚合值,幫助程序員關注建模不可變的數據,而不是擴展行為,自動實現數據驅動的方法,如如equals
和assessors
,并保留 Java 中長期存在的原則,如名義類型和遷移兼容性 。Records
(記錄)可以被認為是名義元組。
基于Edwards-Curve
數字簽名算法(EdDSA-Edwards-Curve Digital Signature Algorithm)的加密簽名。EdDSA
是一種現代的橢圓曲線方案,具有 JDK 中現有簽名方案的優點。EdDSA
將只在SunEC
提供商中實現。EdDSA
與其他簽名方案相比,具有更高的安全性和性能,因此備受關注;它已經在OpenSSL
和BoringSSL
等加密庫中得到支持。
通過將java.net.datagram.Socket
和java.net.MulticastSocket API
的底層實現替換為更簡單、更現代的實現來重新實現遺留的DatagramSocket API
。新的實現:
1.易于調試和維護;
2.與Project Loom中正在探索的虛擬線程協同。
新的計劃是 JDK Enhancement Proposal 353
的后續,該方案重新實現了遺留的套接字 API。java.net.datagram.Socket
和java.net.MulticastSocket
的當前實現可以追溯到 JDK 1.0,那時 IPv6 還在開發中。因此,當前的多播套接字實現嘗試調和 IPv4 和 IPv6 難以維護的方式。
在默認情況下禁用偏向鎖定,并棄用所有相關命令行選項。目標是確定是否需要繼續支持偏置鎖定的高維護成本的遺留同步優化,HotSpot
虛擬機使用該優化來減少非競爭鎖定的開銷。盡管某些 Java 應用程序在禁用偏向鎖后可能會出現性能下降,但偏向鎖的性能提高通常不像以前那么明顯。
此為第二個預覽版,之前是 JDK 14 中的首次預覽。模式匹配允許程序中的通用邏輯(主要是有條件地從對象中提取組件)得到更精確的表達。像Haskell
和c#
這樣的語言已經包含了模式匹配,因為它的簡易性和安全性。
即不能被其他類的字節碼直接使用的類,是為在運行時生成類并通過反射間接使用類的框架使用的。隱藏類可以定義為訪問控制嵌套的成員,并且可以獨立于其他類卸載。該提議將通過支持一個標準 API 來定義不可發現且生命周期有限的隱藏類,從而提高 JVM 上所有語言的效率。JDK 內部和外部的框架將能夠動態生成類,而這些類可以定義隱藏類。許多構建在 JVM 上的語言都依賴動態類生成來獲得靈活性和效率。這個提議的目標包括:允許框架將類定義為無法發現的框架實現細節,這樣它們就不能被其他類鏈接,也不能通過反射被發現;支持擴展帶有不可發現類的訪問控制嵌套;并支持主動卸載不可發現的類,因此框架可以根據需要靈活地定義多個類。另一個目標是棄用非標準API misc.Unsafe::defineAnonymousClass
,目的是為了在將來的版本中刪除。另外, Java 語言不會因為這個建議而改變。
在這個提案下,Z垃圾收集器(ZGC-Z Garbage Collector)將從一個實驗特性升級為產品。 ZGC 集成到2018年9月發布的JDK 11中,是一個可擴展的、低延遲的垃圾收集器。 ZGC 是作為一種實驗性的功能引入的,因為 Java 開發人員決定應該小心地、逐步地引入這種規模和復雜性的特性。從那時起,添加了許多改進,從并發類卸載、未使用內存的解除提交、對類數據共享的支持到改進的 NUMA 感知和多線程堆預處理。此外,最大堆大小從4TB增加到16TB。支持的平臺包括Linux
、Windows
和MacOS
。
JDK 14
和JDK 13
中都預覽版文本塊,它旨在簡化編寫 Java 程序的任務,方法是簡化表達跨越幾行源代碼的字符串,同時在常見情況下避免轉義序列。文本塊是一個多行字符串文字,它可以避免使用大多數轉義序列、自動以可預測的方式格式化字符串,并在需要時為開發人員提供對格式的控制。文本塊建議的一個目標是增強 Java 程序中表示用非J Java 語言編寫的代碼的字符串的可讀性。另一個目標是通過規定任何新構造都可以將相同的字符串集表示為字符串文字,解釋相同的轉義序列,并以與字符串文字相同的方式操作,從而支持字符串文字的遷移。OpenJDK 開發人員希望添加轉義序列來管理顯式的空格和換行控件。
Shenandoah
低暫停時間(low-pause-time)垃圾收集器將成為一個生產特性,不再處于實驗階段。它在一年前被集成到JDK 12中。
2014年3月在jdk8中首次亮相的Nashorn
被移除,由于其被GraalVM
等技術淘汰。OpenJDK 15 提議要求刪除Nashorn APIs
和用于調用Nashorn
的jjs
命令行工具。
不推薦 RMI 激活機制,以便將來刪除。RMI 激活機制是 RMI 中一個過時的部分,自 Java 8 以來一直是可選的。RMI 激活機制增加了持續的維護負擔。RMI 的其他部分將不被棄用。
JDK 15的早期訪問版本可以在java.jdk.net
網站中找到。JDK 15將是一個短期的特性發布,根據 Oracle 的6個月發布周期,它將被支持6個月。下一個長期支持(LTS-long-term support)版本是JDK 17,預計將于2021年9月發布,它將獲得幾年的支持。當前的LTS版本是JDK 11,是于2018年9月發布。
關于“Java JDK15的新特性和變化有哪些”這篇文章的內容就介紹到這里,感謝各位的閱讀!相信大家對“Java JDK15的新特性和變化有哪些”知識都有一定的了解,大家如果還想學習更多知識,歡迎關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。