JDK 17リリースにおける重要な変更

JDK 17の新機能と拡張機能、およびAPI仕様の詳細は、JDK 17リリース・ノートを参照してください。

Java SE 17およびJDK 17の更新内容の一部を次に示します:

言語の新機能

  • Java SE 15で最初にプレビューされたシール・クラスは、このリリースで永続的な機能になりました。シール・クラスおよびインタフェースは、それらを拡張または実装できる他のクラスまたはインタフェースを制限します。JEP 409: シール・クラスに関する項および『Java Platform, Standard Edition Java言語更新』ガイドのシール・クラスに関する項を参照してください。

ライブラリの変更点

  • アプリケーションは、JVM全体のフィルタ・ファクトリを使用して、コンテキスト固有の動的に選択されたデシリアライズ・フィルタを構成できるようになりました。これは、個々のデシリアライズ操作ごとにフィルタを選択するために起動されます。JEP 415: コンテキスト固有のデシリアライズ・フィルタに関する項および『Java Platform, Standard Editionコア・ライブラリ』ガイドのシリアライズ・フィルタリングに関する項を参照してください。
  • ジャンプ可能なPRNGや分割可能なPRNGアルゴリズム(LXM)の追加クラスなど、擬似乱数ジェネレータ(PRNG)の新しいインタフェース・タイプおよび実装が使用できるようになりました。JEP 356: 擬似乱数ジェネレータの強化に関する項および『Java Platform, Standard Editionコア・ライブラリ』ガイドの擬似乱数ジェネレータに関する項を参照してください。
  • macOS用の新しいJava 2D内部レンダリング・パイプラインは、Apple Metal APIを使用して実装されます。これは、非推奨のApple OpenGL APIを使用する既存のパイプラインの代替手段です。JEP 382: 新しいmacOSレンダリング・パイプラインに関する項を参照してください。

その他の変更点

  • デフォルトでは、sun.misc.Unsafeなどの重要な内部APIを除き、JDKのすべての内部要素が強くカプセル化されます。ただし、JDK 9からJDK 16まで可能であった、単一のコマンドライン・オプションを使用した内部要素の強力なカプセル化の緩和はできなくなります。JEP 403: デフォルトでのJDK内部の強力なカプセル化に関する項を参照してください。
  • 浮動小数点演算は、厳密な浮動小数点セマンティクス(strictfp)と微妙に異なるデフォルトの浮動小数点セマンティクスの両方を持つのではなく、一貫して厳密になりました。JEP 306: 常に厳密な浮動小数点セマンティクスのリストアに関する項を参照してください。

非推奨

機能およびインキュベータ・モジュールのプレビュー

プレビュー機能の詳細はJEP 12: プレビュー機能に関する項を、インキュベータ・モジュールの詳細はJEP 11: インキュベータ・モジュールに関する項を参照してください。

削除されたAPI、ツールおよびコンポーネント

関連項目:

また、注意が必要なセキュリティ関連の更新もあります。「JDK 17でのセキュリティ・アップデート」を参照してください。