JDK 18:Java 18預覽 -infoworld

banq發表於2021-11-02

截至 11 月 1 日,Java 開發工具包 (JDK) 18OpenJDK 頁面列出了針對 JDK 18 提出的API介面:一個簡單的 Web 伺服器、一個向量 API、程式碼片段、核心反射的重新實現和 UTF-8 字符集 。
雖然JDK 17於 9 月 14日釋出,是一個長期支援 (LTS) 版本,它將獲得 Oracle 至少八年的支援,但預計 2022 年 3 月釋出的 JDK 18 將是一個短期功能版本,支援六個月。可以在java.net 上找到適用於 Linux、Windows 和 MacOS 的 JDK 18 的早期訪問版本。
JDK 18 提案的細節包括:
  • 簡單的 web 伺服器,將提供一個命令列工具來啟動一個僅提供靜態檔案的最小 web 伺服器。沒有 CGI 或類似 servlet 的功能可用。該工具對於原型設計、臨時編碼和測試非常有用,尤其是在教育環境中。該計劃的目標包括提供一個開箱即用的靜態 HTTP 檔案伺服器,具有簡單的設定和最少的功能,減少開發人員的啟用能量並使 JDK 更易於使用,並透過命令列和一個小的 API 提供預設實現用於程式化建立和定製。提供功能豐富或商業級的伺服器不是提案的目標。
  • 外部函式和記憶體 API,Java 程式可以透過該 API 與 Java 執行時之外的程式碼和資料進行互操作。透過呼叫外部函式——JVM 之外的程式碼——以及安全地訪問外部記憶體——不由 JVM 管理的記憶體——API 讓 Java 程式呼叫本機庫並處理本機資料,但沒有 JNI(Java 本機介面)的脆弱性和危險。其目的是用高階的純 Java 開發模型替換 JNI。對於 JDK 18,將根據反饋進行改進,例如在記憶體訪問變數控制程式碼中支援更多載體(例如 Boolean 和 MemoryAddress),以及用於將 Java 陣列複製到記憶體段和從記憶體段複製 Java 陣列的新 API。
  • 向量API將被孵育在18 JDK的第三時間,此前在孵育JDK 16JDK 17。該提案將在執行時將向量計算表達為支援的 CPU 架構上的最佳向量指令,從而實現優於等效標量計算的效能。向量運算表達了一定程度的並行化,從而能夠在單個 CPU 週期內完成更多工作,從而顯著提高效能。與平臺無關的向量 API 旨在提供一種在 Java 中編寫複雜演算法的方法,使用現有的 HotSpot 自動向量化器,但使用使用者模型使向量化更具可預測性。JDK 18 還將新增對ARM 標量向量擴充套件的支援 平臺並提高在支援硬體掩碼的架構上接受掩碼的向量操作的效能。
  • 指定 UTF-8 作為標準 Java API 的預設字符集. UTF-8 是一種用於電子通訊的可變寬字元編碼,被認為是網路的標準字符集。Charset 是一種能夠對網路上的所有字元進行編碼的字元編碼。透過此更改,依賴於預設字符集的 API 將在所有實現、作業系統、區域設定和配置中保持一致。該提案無意定義新的 Java 標準或特定於 JDK 的 API。該提案的支持者預計,Java 選擇 UTF-8 不會對許多環境中的應用程式產生影響,因為 MacOS、許多 Linux 發行版和許多伺服器應用程式已經支援 UTF-8。但是,在其他環境中存在風險,最明顯的是,在處理未指定預設字符集時生成的資料時,依賴於預設字符集的應用程式將表現不正確。資料損壞可能會悄悄發生。預計主要影響將落在亞洲地區的 Windows 系統使用者以及亞洲和其他地區的某些伺服器環境中。
  • Java API 文件中的程式碼片段,包括@snippet為 JavaDoc 的標準 Doclet引入一個標籤,以簡化 API 文件中示例原始碼的包含。該計劃的目標之一是透過提供對這些片段的 API 訪問來促進原始碼片段的驗證。雖然正確性是作者的責任,但 JavaDoc 和相關工具中的增強支援可以使其更容易實現。其他目標包括啟用現代樣式,例如語法突出顯示,以及名稱與宣告的自動連結,以及為建立和編輯片段提供更好的 IDE 支援。該提案指出,API 文件的作者通常在文件註釋中包含原始碼片段。


 

相關文章