Java SE 18の新しいバージョンはすでにリリースされており、これらはそのニュースです

開発のXNUMXか月後、 オラクルはのリリースをリリースしました の新しいバージョン JavaSE 18 (Standard Edition)、OpenJDKオープンソースプロジェクトをリファレンス実装として使用します。

この新しいバージョンのJavaSE18には、 一部の非推奨機能の削除、互換性の維持 古いバージョンのJavaプラットフォームでは、以前に作成されたほとんどのJavaプロジェクトは、新しいバージョンで実行しても変更されずに引き続き機能します。

Java SE18の主な新機能

この新しいリリースのJavaSE18では、デフォルトのエンコーディングはUTF-8です。 文字エンコードされたテキストデータを処理するJavaAPI すべてのプラットフォームでデフォルトでUTF-8を使用するようになります、システム設定や地域設定に関係なく。 システムのロケールを考慮してエンコーディングが選択されている古い動作を返すには、パラメータ「-Dfile.encoding=COMPAT」を使用できます。

目立つもう一つの変化は彼です java.lang.reflectAPI実装を再設計しました (Core Reflection)は、クラスのメソッド、フィールド、コンストラクター、およびクラスの内部構造へのアクセスに関する情報を取得するように設計されています。 API java.lang.reflect それ自体は変更されていませんが、識別子を使用して実装されています モジュールによって提供されるメソッドの バイトコードジェネレータを使用する代わりに、java.lang.invoke。 この変更により、の実装の統合と保守が容易になりました。 java.lang.reflectおよびjava.lang.invoke。

これに加えて、 VectorAPIのXNUMX番目の予備実装が提案されています、x86_64およびAArch64プロセッサのベクトル命令を使用して実行されるベクトル計算の関数を提供し、複数の値(SIMD)に同時に演算を適用できるようにします。 スカラー演算の自動ベクトル化のためにHotSpotJITコンパイラで提供される機能とは異なり、新しいAPI 並列データ処理のベクトル化を明示的に制御できます。

また、 SPIインターフェースを追加しました (サービスプロバイダーインターフェイス) ホスト名とIPアドレスを解決するには、 これにより、オペレーティングシステムによって提供されるドライバーに関連付けられていないjava.net.InetAddressの代替リゾルバーを使用できます。

一方、それは提案されています Foreign Function&MemoryAPIのXNUMX番目の予備実装、アプリケーションがJavaランタイムの外部でコードやデータと対話できるようにします。 新しいAPI 非JVM関数の効率的な呼び出しを可能にします y アクセスメモリ これはJVMによって管理されていません。 たとえば、JNIを使​​用せずに、外部共有ライブラリから関数を呼び出したり、プロセスデータにアクセスしたりできます。

追加された パターンマッチングのXNUMX番目の実験的実装 式で スイッチ、これにより、「case」タグの正確な値の代わりに柔軟なテンプレートを使用して、以前は「if...else」式の面倒な文字列を必要としていた多数の値を一度にカバーできます。

パッケージは以下を含みます com.sun.net.httpserverには、jwebserverユーティリティとAPIが含まれています 実装されたライブラリの 単純なhttpサーバーから 静的コンテンツを提供するため(CGIおよびサーブレットのようなコントローラーはサポートされていません)。 組み込みのhttpサーバーは、主にプロトタイピング、デバッグ、およびテストプロジェクトの開発プロセスで使用するように設計されているため、ワークロード用に最適化されておらず、アクセス制御または認証をサポートしていません。

その他の変更点 目立つ:

  • JavaDocはタグ「@スニペット»実用的な例とコードスニペットをAPIドキュメントに埋め込みます。これらのドキュメントには、検証ツール、構文の強調表示、およびIDE統合を使用してアクセスできます。
  • 非推奨であり、将来のリリース、完了メカニズム、および次のような関連メソッドで削除される予定です。 Object.finalize()、Enum.finalize()、Runtime.runFinalization()、およびSystem.runFinalization()。
  • ガベージコレクター ZGC(Zガベージコレクター)、SerialGCおよびParallelGC 文字列の重複排除をサポートします。

JavaSE 18 通常のサポートリリースとして分類されます、次のバージョンの前にリリースされるアップデートがあります。 ロングタームサポート(LTS)ブランチはJava SE 17である必要があり、2029年まで更新を受け取ります。

Java 10リリースから、プロジェクトが新しい開発プロセスに切り替わったことを覚えておくことが重要です。これは、新しいリリースを形成するためのサイクルが短くなることを意味します。 新しい機能は現在、絶えず更新されるマスターブランチで開発されています。これには、すでに完了した変更が含まれ、新しいリリースを安定させるためにXNUMXか月ごとにブランチが分岐します。

JavaSE18を入手する

この新しいリリースをテストできるようにすることに関心がある場合は、ビルドがLinux(x86_64、AArch64)、Windows(x86_64)、およびmacOS(x86_64、AArch64)に対応しており、入手できることを知っておいてください。 下のリンクから。