オラクルは3月21日(現地時間)、「Java 20(Oracle JDK 20)」のリリースを発表した。

「Java 20」では、JDK拡張提案「JDK Enhancement Proposal(JEP)」より、プロジェクト「Amber」「Panama」「Loom」から7つのアップデートと改良が行われている。Java言語を拡張するプロジェクト"Amber"から、レコード・パターンとタイプ・パターンをネストさせ、構造化されたデータクエリを実現する「レコード・パターン」(JEP 432)、switch式とステートメントのパターンマッチングを活用し、特定のアクションを持つ複数のパターンに対してswitchでテストすることで、複雑なデータ指向を持つクエリをシンプルかつ安全に記述できる「Pattern Matching for Switch」(JEP 433)。

Oracle JDK 20のダウンロード(Webサイト)

Oracle JDK 20のダウンロード(Webサイト)

JVM(Java Virtual Machine)と外部のライブラリ接続を実現するプロジェクト"Panama"からJavaランタイム外のコードやデータと相互運用可能な「Foreign Function & Memory API」(JEP 434)やサポートCPUアーキテクチャ上で実行時に最適なベクトル命令をコンパイルする「ベクトルAPI」(JEP 438)。

Javaプラットフォームで動作するスループットの高い軽量同時実行と新プログラミング・モデルの実現を目指すプロジェクト"Loom"からは、スレッド内およびスレッド間で不変データを共有可能な「スコープ値」が利用できる機能(JEP 429)、軽量な「仮想スレッド」(JEP 436)、異なるスレッドで実行される複数のタスクを1つの作業単として扱いマルチスレッドプログラミングを簡素化する「Structured Concurrency」(JEP 437)など。