OpenJDK 27 の採用へ
現在開発中の Ubuntu 26.10 で OpenJDK 27 の採用がアナウンスされました。OpenJDK 27
OpenJDK 27 は、2026年9月15日にリリースされたばかりの最新版 OpenJDK です。OpenJDK 27 は通常リリースであり、Ubuntu 26.10 に搭載された OpenJDK 27 は、Ubuntu 26.10 のサポートが切れる2027年7月までサポートされます。
OpenJDK 27 は新機能によりパフォーマンスとセキュリティーが向上しており、さらに言語機能や API の改善がプレビュー機能として提供されています。
OpenJDK 27 のベンチマーク
Phoronix でOpenJDK 27 のベンチマークが作成されています。詳細は以下を参照してください。
OpenJDK 27 の新機能
新機能のピックアップです。デフォルトのガベージコレクターが G1 に
すべての環境でデフォルトのガベージコレクターが G1 になりました。今まで HotSpot JVM はヒープサイズが2GB未満の場合、もしくはマシンに搭載された CPU が1つしかない場合、デフォルトで Serial ガベージコレクターを使用していました。
OpenJDK 27 ではこの条件に関係なく、G1 がデフォルトのガベージコレクターとして選択されるようになりました。
TLS 1.3 向けポスト量子ハイブリッド鍵交換
TLS 1.3 におけるハイブリッド鍵交換方式を定めた RFC 9954 に対応しました。これはTLS 1.3 向けのハイブリッド鍵交換方式であり、「今収集して、後で解読する(Collect now, Crack later)」攻撃に対する安全性を確保することを目的とした仕組みです。
ちなみにポスト量子とは、今後登場するであろう実用的な量子コンピューターを指しており、そのような量子コンピューターの登場に備えるというニュアンスを含んでいます。
コンパクトオブジェクトヘッダーの有効化
デフォルトでコンパクトオブジェクトヘッダーが有効になりました。これによりパフォーマンスを維持しながら、Java アプリケーションのメモリー使用量を削減できます。
特に大量の Java オブジェクトを扱うアプリほど、消費メモリー削減の恩恵を受けやすくなります。
プロセス内データリダクション
JFR(Java Flight Recorder)でアプリの動作を記録する際、アプリの環境変数やコマンドライン引数がプロセスの外に出る前に機密情報をマスキングし、機密情報が外部に漏れることを防ぐ機能です。OpenJDK 27 のプレビュー機能
プレビュー機能のピックアップです。Lazy Constants
Lazy Constants は定数が必要になるまで初期化を遅らせる機能です。これによりモダンな CPU が提供するベクトル演算を活用して実行する高性能な数学演算を、効率的にサポートできるようになります。
プリミティブ型のサポート改善
プリミティブ型のサポートが改善され、パターンマッチングや instanceof、switch で int や boolean といったプリミティブ型を利用できるようになりました。これにより型や値のチェック処理を、より簡潔で分かりやすく記述できるようになります。
構造化された並行性の改善
構造化された並行性の API が改善されました。複数のスレッドで実行されている関連するタスクを一纏まりの処理として扱えるようになり、エラー処理やタスクのキャンセルをシンプルに実装できます。
これによりアプリケーションの信頼性を高めると共に、実行中の処理状況を把握しやすくなります。
Vector API
Vector API はモダンな CPU が提供するベクトル演算を活用し、高性能な数学計算の効率的な実行を支援します。これにより複数の数値をまとめて処理するベクトル演算を Java から利用しやすくなり、科学計算や画像処理など大量のデータを扱う計算処理の高速化に活用できます。
PEM 形式のサポート
暗号オブジェクトで使用される PEM(Privacy-Enhanced Mail)形式のエンコーディングに対応しました。これにより公開鍵や秘密鍵、証明書などの暗号関連データを、PEM 形式でエンコード及びデコードできるようになります。
