2026.09.27
- JAVA
- 技術 💻
Java 27の変更点と最前線8選|値クラス・ヘッダ圧縮・G1既定・耐量子暗号まで
JavaとJVMは、いま世界で最も高度な最適化技術が投入されている実行環境の1つです。Java 27(2026年9月15日リリース)と、その先のJDK 28で、30年来の課題がついに動きました。
今回は、言語の最前線が見える8つを集めました。世界最高水準の技術は、いまここにあります。
今回は、言語の最前線が見える8つを集めました。世界最高水準の技術は、いまここにあります。
① 30年来の「溝」を埋める、値クラスが来ました
Javaには誕生以来の宿題がありました。intのようなプリミティブは速いがオブジェクトになれず、オブジェクトは柔軟だがヒープに置かれて重い——プリミティブとオブジェクトの溝です。
Project Valhallaの成果、値クラス(Value Classes)がJDK 28でプレビューとして統合されました。
valueという修飾子を付けるだけで、そのインスタンスは識別性(アイデンティティ)を持たないオブジェクトになります。==はフィールドの値で比較され、JVMはこれをヒープに個別に置かず、配列やフィールドの中に平たく展開できるようになります。
構文の変更は笑えるほど小さく、影響は途方もなく大きい。約10年の設計議論の末の第一歩が、いま手元で試せます。
Project Valhallaの成果、値クラス(Value Classes)がJDK 28でプレビューとして統合されました。
value record Point(int x, int y) {}valueという修飾子を付けるだけで、そのインスタンスは識別性(アイデンティティ)を持たないオブジェクトになります。==はフィールドの値で比較され、JVMはこれをヒープに個別に置かず、配列やフィールドの中に平たく展開できるようになります。
構文の変更は笑えるほど小さく、影響は途方もなく大きい。約10年の設計議論の末の第一歩が、いま手元で試せます。
② オブジェクトヘッダが、8バイトになりました
すべてのJavaオブジェクトには、GCやロックのための「ヘッダ」が付いています。長年12バイトでした。
Java 27で、コンパクトオブジェクトヘッダ(8バイト)が既定になりました。たった4バイトの差ですが、Javaのヒープは小さなオブジェクトの海なので、ヒープ全体で数%〜十数%の削減が、コードを1行も変えずに手に入ります。
30年間当たり前だった内部構造を、互換性を保ったまま作り替える。「動いているものを、止めずに軽くする」——JVM開発の凄みは、こういう地味な1行に宿ります。
Java 27で、コンパクトオブジェクトヘッダ(8バイト)が既定になりました。たった4バイトの差ですが、Javaのヒープは小さなオブジェクトの海なので、ヒープ全体で数%〜十数%の削減が、コードを1行も変えずに手に入ります。
30年間当たり前だった内部構造を、互換性を保ったまま作り替える。「動いているものを、止めずに軽くする」——JVM開発の凄みは、こういう地味な1行に宿ります。
③ テラバイトのヒープを、1ミリ秒未満で止めます
GCの世界最前線が、ZGCです。
かつてGCの停止時間はヒープの大きさに比例し、大きなヒープは避けるものでした。ZGCは「カラードポインタ」と「ロードバリア」という仕組みで、アプリが動いている裏でオブジェクトを移動(コンパクション)します。結果、ヒープが数テラバイトでも停止時間はミリ秒未満。
Java 21では世代別ZGCが加わり、若いオブジェクトを効率よく回収できるようになりました。そしてJava 27では、G1が全環境で既定のGCに統一されています。
「GCがあるから遅い」は、10年前の話。GCの技術は、停止時間をほぼ消す領域に到達しています。
かつてGCの停止時間はヒープの大きさに比例し、大きなヒープは避けるものでした。ZGCは「カラードポインタ」と「ロードバリア」という仕組みで、アプリが動いている裏でオブジェクトを移動(コンパクション)します。結果、ヒープが数テラバイトでも停止時間はミリ秒未満。
Java 21では世代別ZGCが加わり、若いオブジェクトを効率よく回収できるようになりました。そしてJava 27では、G1が全環境で既定のGCに統一されています。
「GCがあるから遅い」は、10年前の話。GCの技術は、停止時間をほぼ消す領域に到達しています。
④ スレッドを「100万本」立てられるようになった理由
Project Loomが実現した仮想スレッドの裏側には、継続(Continuation)という技術があります。
処理の途中状態をヒープ上に保存し、少数のOSスレッド(キャリア)の上で中断・再開を高速に切り替える。だからI/O待ちのたびにOSスレッドを手放せて、100万本規模の並行処理が成立します。
さらにJava 27では構造化並行性(Structured Concurrency)が7回目のプレビューに。並行タスクを「親子関係を持つ1つの単位」として扱い、エラー処理とキャンセルを構造的に安全にする設計です。
非同期地獄を経由せず、素直なコードのまま高スループットへ。Javaが選んだ答えは、言語を歪めずに実行環境を進化させることでした。
処理の途中状態をヒープ上に保存し、少数のOSスレッド(キャリア)の上で中断・再開を高速に切り替える。だからI/O待ちのたびにOSスレッドを手放せて、100万本規模の並行処理が成立します。
さらにJava 27では構造化並行性(Structured Concurrency)が7回目のプレビューに。並行タスクを「親子関係を持つ1つの単位」として扱い、エラー処理とキャンセルを構造的に安全にする設計です。
非同期地獄を経由せず、素直なコードのまま高スループットへ。Javaが選んだ答えは、言語を歪めずに実行環境を進化させることでした。
⑤ Cの世界と、安全に握手できるようになりました
長年、JavaからネイティブコードやメモリにアクセスするにはJNIか、非公式のUnsafeが必要でした。
Project PanamaのForeign Function & Memory API(Java 22で正式化)は、Cの関数呼び出しとヒープ外メモリの操作を、安全で標準の方法にしました。GPU、OSの機能、既存のCライブラリが、JVMから素直に見えます。
そしてその延長で、Project Detroit——FFM APIを使ってJavaとCPython・V8(JavaScript)のランタイムを繋ぐ取り組みが進んでいます。
「Javaの中から他言語の世界を安全に呼ぶ」が、ハックではなく設計として実現しつつあります。
Project PanamaのForeign Function & Memory API(Java 22で正式化)は、Cの関数呼び出しとヒープ外メモリの操作を、安全で標準の方法にしました。GPU、OSの機能、既存のCライブラリが、JVMから素直に見えます。
そしてその延長で、Project Detroit——FFM APIを使ってJavaとCPython・V8(JavaScript)のランタイムを繋ぐ取り組みが進んでいます。
「Javaの中から他言語の世界を安全に呼ぶ」が、ハックではなく設計として実現しつつあります。
⑥ 起動時間という最後の弱点に、手が入っています
Javaの唯一の弱点と言われてきたのが、起動の遅さと、JITが温まるまでの時間です。
Project Leydenは、これに正面から取り組んでいます。AOTキャッシュ——事前に読み込んだクラスやメソッドのプロファイル情報をアーカイブしておき、次回起動時に最初から最適化済みに近い状態で走り出す仕組みです。Java 24・25で段階的に導入され、Java 27でも改善が続いています。
サーバーレスやコンテナの「起動して数秒で仕事して終わる」世界で、JVMが選択肢に戻ってくる。30年目の弱点克服が、いま進行中です。
Project Leydenは、これに正面から取り組んでいます。AOTキャッシュ——事前に読み込んだクラスやメソッドのプロファイル情報をアーカイブしておき、次回起動時に最初から最適化済みに近い状態で走り出す仕組みです。Java 24・25で段階的に導入され、Java 27でも改善が続いています。
サーバーレスやコンテナの「起動して数秒で仕事して終わる」世界で、JVMが選択肢に戻ってくる。30年目の弱点克服が、いま進行中です。
⑦ JVMは、賭けて、外れたら巻き戻します
ここまでの機能の土台にある、HotSpot JITの思想を1つ。
JITコンパイラ(C2)は、実行時のプロファイルを見て「この呼び出し先はいつも同じクラスだ」「この分岐はほぼ通らない」と推測し、それを前提に攻めた最適化を施します。仮想メソッド呼び出しを直接呼び出しに置き換え、通らない分岐のコードを捨てる。
そして推測が外れた瞬間——脱最適化(Deoptimization)で、安全なインタプリタ実行に巻き戻し、プロファイルを取り直します。
静的コンパイルでは不可能な「実際の使われ方に合わせた最適化」。Javaが長年「動的言語より速い」場面を作り出してきた秘密は、この賭けと巻き戻しの仕組みです。
JITコンパイラ(C2)は、実行時のプロファイルを見て「この呼び出し先はいつも同じクラスだ」「この分岐はほぼ通らない」と推測し、それを前提に攻めた最適化を施します。仮想メソッド呼び出しを直接呼び出しに置き換え、通らない分岐のコードを捨てる。
そして推測が外れた瞬間——脱最適化(Deoptimization)で、安全なインタプリタ実行に巻き戻し、プロファイルを取り直します。
静的コンパイルでは不可能な「実際の使われ方に合わせた最適化」。Javaが長年「動的言語より速い」場面を作り出してきた秘密は、この賭けと巻き戻しの仕組みです。
⑧ 量子コンピュータ時代の暗号に、もう対応しています
最後は、セキュリティの最前線です。
Java 27は、TLS 1.3向けのポスト量子暗号(PQC)ハイブリッド鍵交換をサポートしました。将来の量子コンピュータによる解読に備え、従来の方式と耐量子方式を組み合わせて鍵を交換します。
「いま盗んで、あとで解読する」という脅威に対して、プラットフォーム標準の機能として先回りしている。金融・公共といった長期間の機密が求められる領域で、Javaが選ばれ続ける理由がここにあります。
Java 27は、TLS 1.3向けのポスト量子暗号(PQC)ハイブリッド鍵交換をサポートしました。将来の量子コンピュータによる解読に備え、従来の方式と耐量子方式を組み合わせて鍵を交換します。
「いま盗んで、あとで解読する」という脅威に対して、プラットフォーム標準の機能として先回りしている。金融・公共といった長期間の機密が求められる領域で、Javaが選ばれ続ける理由がここにあります。
番外編:最前線を追うための3つ
LTSは2年ごと
Java 21(2023)、25(2025)、次は29(2027)。「LTSだけ追う」でも、2年ごとにこの記事の中身が現実になっていきます。
Vector APIは、Valhallaを待っていました
SIMD命令を扱うVector APIが11回もインキュベート段階に留まった理由は、①の値クラスで型を正しく表現するため。機能同士が10年単位で連携しているのが、JDK開発の設計の深さです。
手元で試せます
Valhallaの早期アクセスビルドは公開されていて、
Java 21(2023)、25(2025)、次は29(2027)。「LTSだけ追う」でも、2年ごとにこの記事の中身が現実になっていきます。
Vector APIは、Valhallaを待っていました
SIMD命令を扱うVector APIが11回もインキュベート段階に留まった理由は、①の値クラスで型を正しく表現するため。機能同士が10年単位で連携しているのが、JDK開発の設計の深さです。
手元で試せます
Valhallaの早期アクセスビルドは公開されていて、
--enable-previewで値クラスを書けます。歴史的な変更を、自分のコードで体感できる時期です。 RJCでも、Javaの最前線と向き合っています
RJCは金融業界向けのJava 21プロジェクトなど、長期サポート版のJavaで堅牢な業務システムを開発しています。だからこそ、次のLTSで何が来るかを追い続けることが、設計判断の質になります。
よくいただくご質問
Q. 実務で今すぐ関係あるのはどれですか?
A. ②③です。Java 27に上げるだけで、ヘッダ圧縮とG1既定の恩恵はコード変更なしで受けられます。
Q. 値クラスは、いつ本番で使えますか?
A. まだプレビュー段階です。ただし①のとおり、設計思想を今から理解しておくと、正式化されたときに移行が最速になります。
Q. Javaは本当に、まだ進化しているんですか?
A. 今日の8つが答えです。30年の互換性を守りながら、内部構造・並行モデル・暗号まで作り替え続けている言語は、世界的にも珍しい存在です。
Q. 未経験からでも、ここまで辿り着けますか?
A. 辿り着けます。RJCの研修はJavaの基礎から始まります。この記事は、その延長線の一番先にある景色です。
A. ②③です。Java 27に上げるだけで、ヘッダ圧縮とG1既定の恩恵はコード変更なしで受けられます。
Q. 値クラスは、いつ本番で使えますか?
A. まだプレビュー段階です。ただし①のとおり、設計思想を今から理解しておくと、正式化されたときに移行が最速になります。
Q. Javaは本当に、まだ進化しているんですか?
A. 今日の8つが答えです。30年の互換性を守りながら、内部構造・並行モデル・暗号まで作り替え続けている言語は、世界的にも珍しい存在です。
Q. 未経験からでも、ここまで辿り着けますか?
A. 辿り着けます。RJCの研修はJavaの基礎から始まります。この記事は、その延長線の一番先にある景色です。
30年の互換性を守りながら、内部を全部作り替える
今日の8つに共通していたのは、これでした。
値クラス、ヘッダ圧縮、ZGC、継続、FFM、AOT、脱最適化、PQC。どれも「昔のコードを一切壊さず、実行環境だけを最先端にする」という同じ哲学で作られています。
Javaの真髄は、新しい構文ではなく、動いているシステムを止めずに未来へ運ぶ技術にある。だから世界の堅い基盤は、いまもJavaで動いています。
値クラス、ヘッダ圧縮、ZGC、継続、FFM、AOT、脱最適化、PQC。どれも「昔のコードを一切壊さず、実行環境だけを最先端にする」という同じ哲学で作られています。
Javaの真髄は、新しい構文ではなく、動いているシステムを止めずに未来へ運ぶ技術にある。だから世界の堅い基盤は、いまもJavaで動いています。
参考:Oracle Java 27発表(2026年9月15日)/OpenJDK Project Valhalla(JEP 401: Value Objects, Preview)
WE ARE HIRING
RJCで一緒に開発しながら、
成長を楽しみませんか?
RJCは、Web・モバイル・AIを活用した開発プロジェクトで、テックリードやPM・PMOも活躍するシステム開発会社です。会社を知る、待遇を確かめる、話を聞いてみる。気になるところ見てみてください!
- 127日年間休日
- 12時間平均残業時間
- 毎日ガチャ遊びココロも大切にする福利厚生。アマギフなどの賞品ラインナップ!
ほかにも、チケットレストラン、書籍読み放題、2年ごとの慰労報奨(休暇 or 金一封)、11期連続の黒字決算。