米Oracleは、Javaプラットフォームの最新バージョンである「Java20」の提供を3月21日(現地時間)に発表した。「Java 20(Oracle JDK 20)」では、プラットフォームの機能強化を含む、パフォーマンス、安定性およびセキュリティ面での改良により、開発者の生産性をさらに向上させ、組織全体の成長を促進する。
最新のJava Development Kit(JDK)では、7つのJDK Enhancement Proposal(JEPs)によるアップデートと改良が行われている。これらのアップデートのほとんどは、以前のリリースで実装された機能を改善するものとして提供される。
Java20で提供される主なアップデートは以下の通り。
- JEP 432:レコード・パターン(第2プレビュー)
レコード・パターンとタイプ・パターンをネストさせ、強力で宣言的、かつ構成可能なデータ・ナビゲーションと処理を実現することで、Java言語を強化する。これにより、パターン・マッチングを拡張して、より洗練された構成可能なデータ・クエリを可能にすることで、開発者の生産性を向上させる。
- JEP 433:Pattern Matching for Switch(第4プレビュー)
パターン・マッチングをswitchに拡張することで、特定のアクションを伴う複数のパターンに対して式をテストできるため、複雑なデータ指向のクエリを簡潔かつセキュアに表現できる。switch式やswitch文の表現力や適用範囲が広がることで、開発者の生産性が向上する。
- JEP 429:スコープ値(インキュベータ)
スレッド内およびスレッド間で不変データを共有できるようになる。これにより、使いやすさ、理解しやすさ、堅牢性、パフォーマンスが向上する。
- JEP 436:仮想スレッド(第2プレビュー)
Javaプラットフォームに軽量な仮想スレッドを導入することで、高スループットの並列処理アプリケーションの作成、保守、監視プロセスを劇的に効率化する。仮想スレッドを使用することで、開発者は既存のJDKツールやテクニックを使って、並行処理アプリケーションのトラブルシューティング、デバッグ、プロファイリングを容易に行うことができ、アプリケーション開発が加速される。
- JEP 437: 構造化された並行性(第2インキュベーター)
異なるスレッドで実行される複数のタスクを1つの作業単位として扱うことで、マルチスレッド・プログラミングを簡素化することができる。これにより、開発チームはエラー処理と取消を効率化し、信頼性を向上させ、可観測性を強化することができる。
- JEP 434:Foreign Function & Memory API(第2プレビュー)
Javaプログラムが、Javaランタイム外のコードやデータと相互運用できるようにする。この機能により、Javaプログラムは、Java Native Interfaceを必要とせずに、外部関数(Java Virtual Machine [JVM]外のコード)を効率的に呼び出したり、外部メモリ(JVMによって管理されていないメモリ)にセキュアにアクセスしたりすることで、ネイティブ・ライブラリの呼び出しやネイティブ・データの処理を行うことが可能。
- JEP 438:ベクトルAPI(第5インキュベーター)
ベクトル計算を表現し、実行時にサポートされているCPUアーキテクチャのベクトル命令に確実にコンパイルすることができる。これにより、同等のスカラー計算と比較してパフォーマンスが向上する。
米Oracleは、今後もリリース・スケジュールに基づき、6カ月ごとに新しいJava機能のリリースを提供していく予定。
この記事は参考になりましたか?
- この記事の著者
-
CodeZine編集部(コードジンヘンシュウブ)
CodeZineは、株式会社翔泳社が運営するソフトウェア開発者向けのWebメディアです。「デベロッパーの成長と課題解決に貢献するメディア」をコンセプトに、現場で役立つ最新情報を日々お届けします。
※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です