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.Socketjava.net.ServerSocket API 底層實現。這個新實現的目的是為了更容易地適應用戶模式線程(也稱為 fibers),這些線程正在 [Project Loom](https://www.infoworld.com/article/3230507/java-jdk-10-what-new-features-to-expect-in- next-java.html) 中進行研究。前面提到的遺留 API 可以追溯到 JDK 1.0,由遺留 C 和 Java 代碼組成,這些代碼被描述為調試和維護起來很麻煩。遺留實現還存在其他問題:支持異步關閉的本機數據結構,導致可靠性和移植問題,以及需要徹底檢查的並發性問題。
  • 第二個 [switch 表達式預覽](https://www.javaworld.com/article/2941281/java-101- decision -and-iterating-with-java-statements.html)已經被提議用於 JDK 13。JDK 12 中曾經有一個這樣的語句,但是現在要做一個更改:要從一個 switch 表達式中產生一個值,將刪除break 跳出當前值語句以支持yield語句。其目的是擴展 switch ,使其既可以用作語句,也可以用作表達式,因此這兩種形式都可以使用傳統的 case ... : 標簽和新的 case … -> 標簽,而不使用 fall through,使用一個新的語句從 switch 表達式生成一個值。這些更改將簡化編碼並為模式匹配做准備。

  • 增強 ZGC(Z 垃圾收集器),將未使用的內存返回到操作系統,這是一個集成到 JDK 13 中的建議。ZGC 被標榜為一個可伸縮、低延遲的收集器,它目前不會將未使用的內存返回給操作系統,即使內存已經很長時間沒有使用了。對於某些應用程序和環境來說,這種行為不是最優的,特別是那些需要考慮內存占用的應用程序,例如容器或環境,其中應用程序可能長時間處於空閑狀態,並且正在與其他應用程序共享或競爭資源。

  • 擴展應用程序類數據共享(AppCDS),以支持在應用程序執行結束時動態歸檔類。存檔類將包括所有加載的應用程序和庫類,這些類不存在於默認的底層 CD 存檔中。該建議正處於目標階段,其目的是提高 AppCDS 的可用性,並消除用戶在為每個應用程序創建類列表時進行試運行的需要。

哪里可以下載 beta JDK 13 版本

你可以從 jdk.java.net 網站下載 JDK 13 構建。JDK 13 的第一個 beta 版本可用於 Linux、MacOS 和 Windows。

本文中的 ”JDK 13:Java 的新特性“ 最初由 InfoWorld 發布。

原文:https://www.javaworld.com/article/3341388/jdk-13-the-new-features-coming-to-java-13.html

作者:Paul Krill

譯者:Queena


9月福利,關注公眾號

后台回復:004,領取8月翻譯集錦!

往期福利回復:001,002, 003即可領取!

img


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM