Java
概要
Java は、JVM(Java Virtual Machine)上で動作する静的型付けのオブジェクト指向言語です。「Write Once, Run Anywhere」を掲げ、エンタープライズシステムや Android、ビッグデータ基盤などで広く使われてきました。長らくの課題だった オブジェクトのメモリ効率(参照経由のレイアウト、GC 負荷)の改善が、Project Valhalla として JDK 28 で実を結びつつあります。
Project Valhalla(JDK 28, Daily フィード)
12年越しの大型プロジェクト Project Valhalla が JDK 28 に統合されることが確定しました。「クラスのように書け、整数のように動く」をスローガンに、通常のクラス構文を使いつつメモリ効率はプリミティブ型並みのコードを書けることを目指します。Project_Valhalla_Explained_How_a_Decade_of_Work_Arrives_in_JDK_28
- 値クラス(Value Class) —
value修飾子で宣言する、アイデンティティを持たないオブジェクト。メモリ上で連続配置(フラット化)できる - 性能改善の仕組み — スカラー化とヒープフラット化により、配列が参照ではなく実データを直接保持。キャッシュ効率が向上し GC 負荷が下がる
- 制限事項 — JDK 28 ではプレビュー機能(デフォルト無効)。非 null 型制限は未実装で、特殊化ジェネリクスは将来の予定
- 恩恵が大きい分野 — ゲーム、金融、機械学習などの高性能データ処理
位置づけ
- 値型によるメモリレイアウト制御は、C++ や Rust が持つ「データの並びを意識した最適化」に Java が近づく動きと見られる
- キャッシュ効率・GC 削減は システムパフォーマンス の観点で重要