JDK 18リリースにおける重要な変更
JDK 18の新機能と拡張機能、およびAPI仕様の詳細は、JDK 18リリース・ノートを参照してください。
Java SE 18およびJDK 18の更新内容の一部を次に示します:
ツール
- 新しいコマンドライン・ツール
jwebserver
を使用すると、静的ファイルを処理する最小限のWebサーバーを起動できます。このツールは、プロトタイプ作成やテストに役立ちます。JEP 408: 単純なWebサーバーに関する項を参照してください。 @snippet
タグがJavaDocの標準ドックレットに追加され、APIドキュメントにソース・コード例を含めるのが簡単になります。JEP 413: Java APIドキュメントのコード・スニペットに関する項およびスニペットのプログラマーズ・ガイドを参照してください。
ライブラリの変更点
- UTF-8がJava SE APIのデフォルトの文字セットになりました。この変更により、デフォルトの文字セットに依存するAPIは、すべての実装、オペレーティング・システム、ロケールおよび構成にわたって一貫性のある動作をします。「JEP 400: デフォルトのUTF-8」および「デフォルトの文字セットに関する注意」を参照してください。
java.net.InetAddress
がプラットフォームの組込みリゾルバ以外のリゾルバを使用できるように、ホスト名およびアドレス解決用にサービス・プロバイダ・インタフェース(SPI)が定義されます。JEP 418: インターネット・アドレス解決SPIに関する項を参照してください。jdk.net.hosts.file
システム・プロパティの詳細は、『Java Platform, Standard Editionコア・ライブラリ』のホスト名からIPアドレスへのマッピングの指定に関する項も参照してください。これにより、システム全体のリゾルバではなく特定のhosts
ファイルを使用するようにInetAddressを構成して、ホスト名をIPアドレスにマップできます。- メソッド・ハンドルのコア・リフレクションが再実装されました。これにより、
java.lang.reflect
APIとjava.lang.invoke
APIの両方のメンテナンスおよび開発コストが削減されます。JEP 416: メソッド・ハンドルによるコア・リフレクションの再実装に関する項を参照してください。
機能およびインキュベータ・モジュールのプレビュー
プレビュー機能の詳細はJEP 12: プレビュー機能に関する項を、インキュベータ・モジュールの詳細はJEP 11: インキュベータ・モジュールに関する項を参照してください。
- このリリースでは、プレビュー機能である
switch
式および文のパターン・マッチングが再プレビューされています。この機能を使用すると、それぞれが特定のアクションを持つ複数のパターンに対して式をテストできるため、複雑なデータ指向の問合せを簡潔かつ安全に表現できます。JEP 420: switchのパターン・マッチング(セカンド・プレビュー)に関する項および『Java Platform, Standard Edition Java言語更新』のswitch式および文のパターン・マッチングに関する項を参照してください。 - Java SE 17で導入された外部関数およびメモリーAPIを使用すると、JavaプログラムをJavaランタイム外のコードおよびデータと相互運用できます。このリリースでは、APIが機能改善とともに再導入されています。JEP 419: 外部関数およびメモリーAPI (セカンド・インキュベータ)に関する項を参照してください。
- ベクターAPIは、インキュベーションAPIとしてJava SE 16で導入されました。このリリースでは、APIは機能強化とパフォーマンスの改善により再導入されています。JEP 417: ベクターAPI (サード・インキュベータ)に関する項を参照してください。
削除されたAPI、ツールおよびコンポーネント
削除および非推奨の詳細は、次を参照してください:
また、注意が必要なセキュリティ関連の更新もあります。「JDK 18でのセキュリティ・アップデート」を参照してください。