JDK 13 的 12 個新特性,真心漲姿勢了

      網友投稿 892 2025-04-05

      1、switch優化更新


      JDK11以及之前的版本:

      switch (day) {

      case MONDAY:

      case FRIDAY:

      case SUNDAY:

      JDK 13 的 12 個新特性,真心漲姿勢了

      System.out.println(6);

      break;

      case TUESDAY:

      System.out.println(7);

      break; case THURSDAY:

      case SATURDAY:

      System.out.println(8);

      break;

      case WEDNESDAY:

      System.out.println(9);

      break;

      }

      JDK12版本

      switch (day) {

      case MONDAY, FRIDAY, SUNDAY -> System.out.println(6);

      case TUESDAY -> System.out.println(7);

      case THURSDAY, SATURDAY -> System.out.println(8);

      case WEDNESDAY -> System.out.println(9);

      }

      JDK13版本

      static void howMany(int k) {

      System.out.println(

      switch (k) {

      case ?1 -> "one"

      case ?2 -> "two"

      default -> "many"

      }

      );

      }

      2、文本塊升級

      2.1、html例子

      JDK13之前

      String html = "\n" +

      " ? ?\n" +

      " ? ? ? ?

      Hello, world

      \n" +

      " ? ?\n" +

      "\n";

      JDK13優化的:

      String html = """

      Hello, world

      """;

      2.2、SQL變化

      JDK13之前

      String query = "SELECT `EMP_ID`, `LAST_NAME` FROM `EMPLOYEE_TB`\n" +

      "WHERE `CITY` = 'INDIANAPOLIS'\n" +

      "ORDER BY `EMP_ID`, `LAST_NAME`;\n";

      JDK13

      String query = """

      SELECT `EMP_ID`, `LAST_NAME` FROM `EMPLOYEE_TB`

      WHERE `CITY` = 'INDIANAPOLIS'

      ORDER BY `EMP_ID`, `LAST_NAME`;

      """;

      2.3、解釋

      文本塊

      """

      line 1

      line 2

      line 3

      """

      相當于字符串文字:

      "line?1\nline?2\nline?3\n"

      3、動態CDS檔案

      目標:

      提高應用程序類?-?數據共享(AppCDS)的可用性。消除了用戶進行試運行以創建每個應用程序的類列表的需要。

      -Xshare:dump

      使用類列表由該選項啟用的靜態歸檔應繼續工作。這包括內置類加載器和用戶定義的類加載器的類。

      4、取消使用未使用的內存

      摘要:

      增強ZGC以將未使用的堆內存返回給操作系統

      動機:

      ZGC目前沒有取消提交并將內存返回給操作系統,即使該內存長時間未使用。對于所有類型的應用程序和環境,此行為并非最佳, 尤其是那些需要關注內存占用的應用程序和環境?例如:通過使用支付資源的容器環境。應用程序可能長時間處于空閑狀態并與許多其 他應用程序共享或競爭資源的環境。應用程序在執行期間可能具有非常不同的堆空間要求。

      例如,啟動期間所需的堆可能大于穩態執行期間稍后所需的堆。HotSpot中的其他垃圾收集器,如G1和Shenandoah,今天提供 了這種功能,某些類別的用戶發現它非常有用。將此功能添加到ZGC將受到同一組用戶的歡迎。

      5、重新實現舊版套接字API

      摘要:

      使用更簡單,更現代的實現替換java.net.Socket和java.net.ServerSocketAPI 使用的底層實現,易于維護和調試。新的實 現很容易適應用戶模式線程,也就是光纖,目前正在Project Loom中進行探索。

      動機:

      在java.net.Socket和java.net.ServerSocketAPI,以及它們的底層實現,可以追溯到JDK 1.0。實現是遺留Java和C代 碼的混合,維護和調試很痛苦。該實現使用線程堆棧作為I/O緩沖區,這種方法需要多次增加默認線程堆棧大小。該實現使用本機數據 結構來支持異步關閉,這是多年來微妙可靠性和移植問題的根源。該實現還有幾個并發問題,需要進行大修才能正確解決。在未來的光 纖世界環境中,而不是在本機方法中阻塞線程,當前的實現不適用于目的。

      6、FileSystems.newFileSystem新方法

      核心庫/ java.nio中添加了FileSystems.newFileSystem(Path,Map )方法

      添加了三種新方法java.nio.file.FileSystems,以便更輕松地使用將文件內容視為文件系統的文件系統提供程序。

      1、newFileSystem(Path)

      2、newFileSystem(Path, Map)

      3、newFileSystem(Path, Map, ClassLoader)

      添加為newFileSystem(Path, Map)?已使用現有2-arg newFileSystem(Path, ClassLoader)并指定類加載器 的代碼創建源(但不是二進制)兼容性問題。null.例如,由于引用newFileSystem不明確,因此無法編譯以下內容:

      FileSystem fs = FileSystems.newFileSystem(path, null);

      為了避免模糊引用,需要修改此代碼以將第二個參數強制轉換為java.lang.ClassLoader。

      7、nio新方法

      核心庫/ java.nio中新的java.nio.ByteBuffer批量獲取/放置方法轉移字節而不考慮緩沖區位置。

      java.nio.ByteBufferjava.nio現在,其他緩沖區類型定義絕對批量get和put傳輸連續字節序列的方法,而不考慮或影響緩沖區位置。

      8、核心庫/ java.time

      新日本時代名稱Reiwa,此更新中添加了代表新Reiwa時代的實例。與其他時代不同,這個時代沒有公共領域。它可以通過調用 JapaneseEra.of(3)或獲得JapaneseEra.valueOf("Reiwa")。JDK13及更高版本將有一個新的公共領域來代表這個時代。

      NewEra從2019年5月1日開始的日本時代的占位符名稱“?”已被新的官方名稱取代。依賴占位符名稱(請參閱JDK-8202088)獲取新時代單例(JapaneseEra.valueOf("NewEra"))的應用程序將不再起作用。請參閱JDK-8205432

      9、核心庫/ java.util中:I18N

      支持Unicode 12.1,此版本將Unicode支持升級到12.1,其中包括以下內容:

      java.lang.Character支持12.1級的Unicode字符數據庫,其中12.0從11.0開始增加554個字符,總共137,928個 字符。這些新增內容包括4個新腳本,總共150個腳本,以及61個新的表情符號字符。

      U+32FF SQUARE ERA NAME REIWA從 12.0開始,12.1只添加一個字符。java.text.Bidi和java.text.Normalizer類分別支持12.0級的Unicode標準附件, #9和#15。java.util.regexpackage支持基于12.0級Unicode標準附件#29的擴展字形集群。

      10、熱點/ GC

      10.1 JEP 351 ZGC取消提交未使用的存儲器

      10.2 添加了-XXSoftMaxHeapSize標志

      10.3 ZGC支持的最大堆大小從4TB增加到16TB

      11、安全庫/ java.security

      11.1?該com.sun.security.crl.readtimeout系統屬性設置為CRL檢索的最大讀取超時,單位為秒。如果尚未設置該屬性,或者其值為負,則將其設置為默認值15秒。值0表示無限超時。

      11.2?新的keytool -showinfo -tls用于顯示TLS配置信息的命令keytool -showinfo -tls添加了一個顯示TLS配置信 息的新命令。

      11.3?SunMSCAPI提供程序現在支持以下一代加密(CNG)格式讀取私鑰。這意味著CNG格式的RSA和EC密鑰可從Windows密鑰 庫加載,例如“Windows-MY”。與EC(簽名算法SHA1withECDSA,SHA256withECDSA等等)也支持。

      12、刪除功能

      刪除的部分功能:

      12.1?核心庫/java.net中,不再支持Pre-JDK 1.4 SocketImpl實現java.net.SocketImpl此版本已刪除對為JavaSE1.3及更早版本編譯的自定義實現的支持。此更改對SocketImpl為Java SE 1.4(2002年發布)或更新版本編譯的實現沒有影響。

      12.2?核心庫/java.lang中,刪除運行時跟蹤方法,過時的方法traceInstructions(boolean),并traceMethodCalls(boolean)已經從刪除java.lang.Runtime類。這些方法對許多版本都不起作用,它們的預期功能由Java虛擬機工具接口(JVMTI)提供。

      my.oschina.net/mdxlcj/blog/3107021

      Java JDK

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      上一篇:IMLN
      下一篇:了解OKR管理的意義及實踐方法
      相關文章
      亚洲1区1区3区4区产品乱码芒果| 久久久久亚洲Av无码专| 亚洲冬月枫中文字幕在线看| 国产亚洲福利精品一区二区| 亚洲国产天堂在线观看| 国产亚洲美女精品久久| 亚洲AV无码男人的天堂| 久久久久亚洲AV片无码| 国产产在线精品亚洲AAVV| 亚洲国产精品无码久久九九大片| 亚洲AV成人无码久久精品老人 | 亚洲精品456播放| 亚洲国产成人资源在线软件 | 午夜亚洲国产理论片二级港台二级 | 亚洲日本乱码在线观看| 亚洲午夜精品一区二区麻豆| 亚洲人成在线观看| 亚洲综合无码一区二区| 亚洲色偷偷av男人的天堂| 亚洲区小说区图片区QVOD| 国产成人精品日本亚洲语音| 亚洲另类图片另类电影| 亚洲激情视频图片| 亚洲日本va一区二区三区| 亚洲一级毛片在线播放| 亚洲xxxx18| 亚洲爆乳大丰满无码专区| 妇女自拍偷自拍亚洲精品| 亚洲美女高清一区二区三区| 亚洲精品无码久久一线| 亚洲AV无码成人精品区天堂| 亚洲精品制服丝袜四区| 亚洲精品线在线观看| 亚洲成a人片在线观| 久久久久亚洲AV无码麻豆| 亚洲成在人线电影天堂色| 2020天堂在线亚洲精品专区| 亚洲人成在线播放| 亚洲一区精彩视频| 最新亚洲人成无码网站| 久久精品亚洲福利|