Java SE 19 發布

經過六個月的開發,Oracle 發布了 Java SE 19(Java Platform, Standard Edition 19)平台,該平台使用 OpenJDK 開源項目作為參考實現。 除了刪除了一些已棄用的功能外,Java SE 19 保持與以前版本的 Java 平台的向後兼容性——大多數以前編寫的 Java 項目在新版本下運行時仍無需修改即可運行。 Java SE 19(JDK、JRE 和 Server JRE)的可安裝版本已為 Linux(x86_64、AArch64)、Windows(x86_64)和 macOS(x86_64、AArch64)準備。 Java 19 參考實現由 OpenJDK 項目開發,在 GPLv2 許可下完全開源,具有 GNU ClassPath 例外,允許動態鏈接到商業產品。

Java SE 19 被歸類為常規支持版本,更新將在下一個版本之前發布。 長期支持 (LTS) 分支應該是 Java SE 17,它將在 2029 年之前收到更新。 回想一下,從 Java 10 的發布開始,項目切換到新的開發流程,這意味著新版本的形成周期更短。 現在正在一個不斷更新的主分支中開發新功能,該分支包含已經完成的更改,並且每六個月從該分支分支一次以穩定新版本。

Java 19 的新特性包括:

  • 已經提出了對記錄模式的初步支持,擴展了 Java 16 模式匹配能力來解析記錄類型的類的值。 例如:record Point(int x, int y) {} void printSum(Object o) { if (o instanceof Point(int x, int y)) { System.out.println(x+y); } }
  • Linux 版本提供對 RISC-V 架構的支持。
  • 增加了對 FFM(Foreign Function & Memory)API 的初步支持,它允許您通過調用外部庫的函數和訪問 JVM 外部的內存來組織 Java 程序與外部代碼和數據的交互。
  • 添加了對虛擬線程的支持,虛擬線程是輕量級線程,可大大簡化高性能多線程應用程序的編寫和維護。
  • 提出了 Vector API 的第四個初步實現,它提供了使用 x86_64 和 AArch64 處理器的向量指令執行的向量計算函數,並允許您同時對多個值同時應用操作 (SIMD)。 與 HotSpot JIT 編譯器中提供的標量操作自動矢量化功能不同,新的 API 可以顯式控制並行數據處理的矢量化。
  • 添加了 switch 表達式中模式匹配的第三個實驗性實現,它允許在一次涵蓋一系列值的 case 標籤中使用靈活的模板,之前使用了繁瑣的 if...else 語句鏈。 對象 o = 123L; 格式化的字符串 = switch (o) { case Integer i -> String.format("int %d", i); case Long l -> String.format("long %d", l); case Double d -> String.format("double %f", d); case String s -> String.format("String %s", s); 默認 -> o.toString(); };
  • 添加了一個實驗性結構化並行 API,通過將在不同線程上運行的多個任務視為一個單元,可以更輕鬆地開發多線程應用程序。

來源: opennet.ru

添加評論