您好,登錄后才能下訂單哦!
這篇文章主要介紹了Java13新特性是什么,具有一定借鑒價值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。
Java 13 的官方開發目標包含改進垃圾收集、應用程序的類數據共享和文本塊
Java 開發工具包(JDK)13,標準 Java 的下一個版本,現在可作為候選版本使用,所有新功能都已鎖定。JDK 13提出了一種功能,但從未添加到官方列表中,即用于打包自包含 Java 應用程序的 jpackage 工具,已經無緣晉級。JDK 13 不再考慮它。
[新的 Java 已經來了!了解 Jakarta EE 企業 Java 路線圖。|新 Java 版本在這里!你需要學習任何關于 Java JDK 11 的新功能和 Java EE 8 的新功能。|使用 InfoWorld 的 App Dev Report 簡報了解編程中的熱門話題。]
JDK 13 將于2019年9月17日到期。第二個候選版本將于8月22日到期。以下是 JDK 13 的官方特性:
在預覽階段添加文本塊。文本塊是一個多行字符串文本,它避免了對大多數轉義序列的需要。文本塊以可預測的方式自動格式化字符串,并讓開發人員控制格式。該項目引用了向 Java 添加文本塊背后的一些目標。一個目標是簡化 Java 程序的編寫,方法是簡化跨幾行源代碼的字符串的表達,同時在常見情況下避免轉義序列。第二個目標是增強程序中字符串的可讀性,這些字符串表示用非 Java 語言編寫的代碼。第三個目標是支持從字符串字面量遷移,規定任何新構造都可以將相同的字符串集表示為字符串字面量,解釋相同的轉義序列,并像字符串字面量一樣進行操作。
原始字符串
是 JDK 13 的一個特性,但它放棄了文本塊,采用了一種不同的方法來表示字符串而不轉義換行和引號。原始字符串關注的是字符串的原始性,但是 Java 項目團隊現在認為焦點是錯誤的,因為雖然原始字符串可以跨越多行源代碼,但是它們涉及到支持非轉義分隔符的昂貴需求。JDK 13 曾計劃使用原始字符串,但從未正式將其添加到建議的特性列表中。
重新實現遺留的套接字API,涉及使用更簡單、更現代的實現替換現在的 net.Socket 和 java.net.ServerSocket API 底層實現。這個新實現的目的是為了更容易地適應用戶模式線程(也稱為 fibers),這些線程正在 Project Loom 中進行研究。前面提到的遺留 API 可以追溯到 JDK 1.0,由遺留 C 和 Java 代碼組成,這些代碼被描述為調試和維護起來很麻煩。遺留實現還存在其他問題:支持異步關閉的本機數據結構,導致可靠性和移植問題,以及需要徹底檢查的并發性問題。
第二個 switch 表達式預覽已經被提議用于 JDK 13。JDK 12 中曾經有一個這樣的語句,但是現在要做一個更改:要從一個 switch 表達式中產生一個值,將刪除break 跳出當前值語句以支持yield語句。其目的是擴展 switch ,使其既可以用作語句,也可以用作表達式,因此這兩種形式都可以使用傳統的 case ... : 標簽和新的 case … -> 標簽,而不使用 fall through,使用一個新的語句從 switch 表達式生成一個值。這些更改將簡化編碼并為模式匹配做準備。
增強 ZGC(Z 垃圾收集器),將未使用的內存返回到操作系統,這是一個集成到 JDK 13 中的建議。ZGC 被標榜為一個可伸縮、低延遲的收集器,它目前不會將未使用的內存返回給操作系統,即使內存已經很長時間沒有使用了。對于某些應用程序和環境來說,這種行為不是最優的,特別是那些需要考慮內存占用的應用程序,例如容器或環境,其中應用程序可能長時間處于空閑狀態,并且正在與其他應用程序共享或競爭資源。
擴展應用程序類數據共享(AppCDS),以支持在應用程序執行結束時動態歸檔類。存檔類將包括所有加載的應用程序和庫類,這些類不存在于默認的底層 CD 存檔中。該建議正處于目標階段,其目的是提高 AppCDS 的可用性,并消除用戶在為每個應用程序創建類列表時進行試運行的需要。
感謝你能夠認真閱讀完這篇文章,希望小編分享的“Java13新特性是什么”這篇文章對大家有幫助,同時也希望大家多多支持億速云,關注億速云行業資訊頻道,更多相關知識等著你來學習!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。