米オラクルは9月16日(現地時間)、プログラミング言語および開発プラットフォームの最新バージョン「Java 25」の提供を開始したと発表した。新リリースでは、Java言語の改善、AI機能の拡充、開発者の生産性向上を実現する18件のJDK Enhancement Proposalを提供する。
また、同社は、「Java 25」に対し、少なくとも今後8年間の長期サポート提供を表明している。「Oracle JDK 25」は、「Oracle No-Fee Terms and Conditions(NFTC)」に基づき、2028年9月まで四半期ごとにセキュリティやパフォーマンスのアップデートが提供される。2028年9月以降は、「Java SE OTN License(OTN)」に基づき、少なくとも2033年9月までアップデートが継続して提供される予定。
Oracle JDK 25の言語機能
Oracle JDK 25の言語機能に関する主要なJDK Enhancement Proposalは以下のとおり。
- JEP 507(プリミティブ型のパターン、instanceof、switch<第3プレビュー>):すべてのパターン・コンテキストでプリミティブ型のパターンが、また、すべてのプリミティブ型でinstanceofとswitchが使用可能になる
- JEP 511(モジュール・インポート宣言):インポートを行うコードをモジュール自体に配置する必要がないため、モジュールがエクスポートしたすべてのパッケージを簡単にインポートできるようになる
- JEP 512(コンパクトなソースファイルとインスタンスのmainメソッド):スクリプトやコマンドライン・ユーティリティのような小規模なプログラムを、面倒な定型文なしに簡単に記述できるようになる
- JEP 513(柔軟なコンストラクタ本体)開発者は、コンストラクタを明示的に呼び出す前に入力値の検証や安全な計算処理を行えるようになる
Oracle JDK 25のライブラリ
Oracle JDK 25のライブラリ関する主要なJDK Enhancement Proposalは以下のとおり。
- JEP 505(構造化された並行性、第5プレビュー):異なるスレッドで実行される関連タスクのグループを1つの作業単位として扱うことで、スレッド・リークや取消遅延など、取消や停止に起因する一般的なリスクを軽減する
- JEP 506(スコープ値):スレッド内およびスレッド間で不変データの共有を可能にすることで、プロジェクトの使いやすさ、理解しやすさ、パフォーマンス、堅牢性が向上する
- JEP 502(安定値、プレビュー):不変データを保持する「安定値」というオブジェクト用のAPIを導入。安定値はJava仮想マシンによって定数として扱われるため、フィールドをfinalで宣言した場合と同様のパフォーマンス最適化が適用される
- JEP 508(Vector API、第10インキュベーター):ベクトル計算を表現できるAPIを提供。このAPIは、サポートされているCPUアーキテクチャ上で、実行時に最適なベクトル命令へと確実にコンパイルされる
