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

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

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

同時実行モデル更新のプレビュー

  • 仮想スレッドは、高スループットの同時アプリケーションの書込み、メンテナンスおよびデバッグの労力を減らす軽量スレッドです。これはプレビューAPIです。『JEP 425: Virtual Threads (Preview)』および『Java Platform, Standard Editionコア・ライブラリ』仮想スレッドに関する項を参照してください。
  • 構造化並行性のためのマルチスレッド・プログラミングを簡略化するために、APIが導入されました。構造化並行性は、異なるスレッドで実行されている複数のタスクを1つの作業単位として処理することにより、エラーの処理と取消しを合理化し、信頼性と可観測性を向上させます。『JEP 428: Structured Concurrency (Incubator)』を参照してください。

言語の変更

  • このリリースでは、レコード・パターンがプレビュー機能として導入されています。レコード・パターンは、タイプ、対応するレコード・コンポーネントとのマッチングに使用されるレコード・コンポーネント・パターン・リスト、およびオプションの識別子で構成されます。レコード・パターンとタイプ・パターンをネストすると、強力で宣言的かつ組立て可能な形式のデータのナビゲーションや処理が可能になります。『JEP 405: Record Patterns (Preview)』および『Java Platform, Standard Edition Java言語更新』レコード・パターンに関する項を参照してください。
  • このリリースでは、プレビュー機能であるswitch式および文のパターン・マッチングが再プレビューされています。この機能を使用すると、それぞれが特定のアクションを持つ複数のパターンに対して式をテストできるため、複雑なデータ指向の問合せを簡潔かつ安全に表現できます。『JEP 427: Pattern Matching for switch (Third Preview)』および『Java Platform, Standard Edition Java言語更新』switch式および文のパターン・マッチングに関する項を参照してください。

ライブラリの変更点

  • 外部関数およびメモリーAPIを使用すると、JavaプログラムはJavaランタイムの外部のコードおよびデータと相互運用できます。このAPIにより、Javaプログラムは、JNIの脆弱性と危険性を伴わずにネイティブ・ライブラリをコールしてネイティブ・データを処理できます。APIは、外部関数(JVM外部のコード)を起動し、JVMによって管理されていない外部メモリーに安全にアクセスします。これはプレビューAPIです。『JEP 424: Foreign Function & Memory API (Preview)』および『Java Platform, Standard Editionコア・ライブラリ』外部関数およびメモリーAPIに関する項を参照してください。
  • 実行時に、サポートされているCPUアーキテクチャ上で最適なベクトル命令に確実にコンパイルするベクトル計算を表現するために、Vector APIが導入されています。これにより、同等のスカラー計算よりも優れたパフォーマンスを実現できます。『JEP 426: Vector API (Fourth Incubator)』を参照してください。

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

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

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