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

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

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

言語プレビュー機能

JEP 12: プレビュー機能に関する項および『Java Platform, Standard Edition Java言語更新』プレビュー言語およびVM機能に関する項を参照してください。

ライブラリ改善プレビューおよびインキュベーター

  • クラス・ファイルAPIは、Javaクラス・ファイルの解析、生成および変換に使用されます。

    JEP 466: クラス・ファイルAPI (第2プレビュー)に関する項および『Java Platform, Standard Edition Java仮想マシン・ガイド』「クラス・ファイルAPI」を参照してください。

  • Stream Gatherersを使用すると、カスタムの中間操作を作成できます。これにより、ストリーム・パイプラインは、既存の組込み中間操作では困難だった方法でデータを変換できるようになります。

    JEP 473: Stream Gatherers (第2プレビュー)に関する項および『Java Platform, Standard Editionコア・ライブラリ』「Stream Gatherers」を参照してください。

  • 構造化並行性は、異なるスレッドで実行されている複数のタスクを1つの作業単位として処理することにより、エラーの処理と取消しを合理化し、信頼性と可観測性を向上させます。

    JEP 480: 構造化並行性(第3プレビュー)に関する項および『Java Platform, Standard Editionコア・ライブラリ』構造化並行性に関する項を参照してください。

  • スコープ値を使用すると、スレッド内およびスレッド間で不変データを共有できます。多数の仮想スレッドを使用する場合は特に、スレッド・ローカル変数よりもこちらをお薦めします。

    JEP 481: スコープ値(第3プレビュー)に関する項およびJava API仕様のScopedValueクラスに関する項を参照してください。

  • 実行時に、サポートされているCPUアーキテクチャ上で最適なベクトル命令に確実にコンパイルするベクトル計算を表現するために、Vector APIが導入されています。これにより、同等のスカラー計算よりも優れたパフォーマンスを実現できます。JEP 469: ベクターAPI (第8インキュベータ)に関する項を参照してください。

JEP 11: インキュベータ・モジュールに関する項を参照してください。

実行時の改善点

  • ZGCガベージ・コレクタは、デフォルトで世代別モードで実行されるようになりました。非世代別モードのZGCは、削除のために非推奨となりました。これにより、通常はアプリケーションのパフォーマンスが向上しますが、本質的に非世代別であるワークロードの数が少ないと、マイナスの影響を受ける可能性があります。

    JEP 474: ZGC: デフォルトの世代別モードに関する項および『Java Platform, Standard Edition HotSpot仮想マシン・ガベージ・コレクション・チューニング・ガイド』「Zガベージ・コレクタ」を参照してください。

  • Oracle GraalVM JITコンパイラ(Graal JIT)がOracle JDKの一部として使用可能なJITに含まれるようになりました。この統合によって、新しいJITコードの最適化方法(GraalVMドキュメントのコンパイラの利点に関する項を参照)など、Oracle GraalVMを介して以前に使用可能になったイノベーションが提供されます。これにより、開発者およびシステム管理者に、アプリケーションのピーク・パフォーマンスを微調整および改善するのに役立つより多くのオプションが提供されます。Graal JITは、コマンドライン・オプションをJava実行可能ファイルに渡すことで有効化されます:
    -XX:+UnlockExperimentalVMOptions -XX:+UseGraalJIT

    JVMの起動時にこれらのフラグを渡さない場合、Oracle JDKのデフォルトのJIT (C2)は通常どおり実行されます。

ツール

JavaDocドキュメントのコメントは、HTML要素およびJavaDocタグとともにMarkdown構文で記述できるようになりました。

JEP 467: Markdownドキュメント・コメントに関する項および『Java Platform, Standard Edition JavaDocガイド』「ドキュメント・コメントのMarkdown」を参照してください。

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

削除および非推奨の詳細は、「JDK 23で削除および非推奨となった機能およびオプション」を参照してください。

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