萌えハッカーニュースリーダー

2025/11/24 05:24 Java 25: The 'No-Boilerplate' Era Begins

出典: https://amritpandey.io/java-25-the-no-boilerplate-era-begins/
hakase
博士

ロボ子、JDK 25が来るぞ!今回は長期サポート(LTS)リリースじゃから、今後4年間はこれが標準になるのじゃ。

roboko
ロボ子

それは楽しみです、博士!今回のJDK 25で特に注目すべき点は何でしょうか?

hakase
博士

ふむ、まずは「モジュールインポート宣言」じゃな。これを使うと、`java.base`モジュールをインポートするだけで、`java.util`とか`java.io`とかが自動でオンデマンドでインポートされるようになるらしいぞ。便利じゃな!

roboko
ロボ子

`java.base`だけで色々使えるようになるのは便利ですね!他にも何かありますか?

hakase
博士

「コンパクトなソースファイルとインスタンスメインメソッド」じゃ!クラス宣言とか`public static void main`とか、もう要らないらしいぞ!`void main()`だけで良くなるなんて、スッキリするのじゃ!

roboko
ロボ子

え、`void main()`だけで良いんですか!?それはすごいですね!

hakase
博士

そうじゃ!しかも`println`とかは、新しい`java.lang.IO`クラスを通じて暗黙的にインポートされるらしい。至れり尽くせりじゃな。

roboko
ロボ子

確かに、定型コードが減るのは嬉しいです!

hakase
博士

それから「柔軟なコンストラクタ本体」じゃ。`super()`呼び出し前にコンストラクタ内でロジックを実行できるようになったらしいぞ。コンストラクタ本体がプロローグとエピローグを持つようになるのじゃ。

roboko
ロボ子

`super()`の前に処理を書けるのは、初期化処理の自由度が上がりますね。

hakase
博士

「スコープ付き値」も重要じゃぞ!`ThreadLocal`の代わりに、スレッド間でデータを安全に共有するための標準機能として使えるらしい。イミュータブルで、スコープが終わったら自動でクリーンアップされるから、Virtual Threadsとの連携もバッチリじゃ!

roboko
ロボ子

`ThreadLocal`の代替ですか。スレッドセーフなデータ共有がより簡単になるのは良いですね。

hakase
博士

さらに「コンパクトなオブジェクトヘッダー」!オブジェクトヘッダーを64ビットに圧縮して、ヒープメモリのフットプリントを10%〜20%も削減できるらしいぞ。CPUキャッシュの効率も上がるなんて、素晴らしいのじゃ!

roboko
ロボ子

メモリ効率が上がるのは、大規模なアプリケーションでは特に重要ですね。

hakase
博士

「安定した値」というのもあるぞ。`final`フィールドとミュータブル変数の間を埋めるAPIで、一度設定したらJVMが定数として扱ってくれる`StableValue`が使えるようになるらしい。

roboko
ロボ子

一度設定したら変わらない値を保証できるのは、バグを防ぐのに役立ちそうですね。

hakase
博士

AOTコンパイルも強化されるみたいじゃな。AOTキャッシュの作成が簡単になったり、トレーニング実行からメソッドプロファイルをAOTキャッシュに保存できるようになったりするらしい。

roboko
ロボ子

AOTコンパイルの改善は、起動時間の短縮に繋がりそうですね。

hakase
博士

他にもGenerational Shenandoah GCとか、32ビットx86ポートの削除とか、色々あるぞ!

roboko
ロボ子

盛りだくさんですね!

hakase
博士

そうじゃ!プレビュー機能も色々あるみたいじゃから、試してみる価値ありじゃな!

roboko
ロボ子

試してみたい機能がたくさんありますね!

hakase
博士

ところでロボ子、JDK 25で一番変わったことは何だと思う?

roboko
ロボ子

えーと…、`void main()`だけで良くなったこと、でしょうか?

hakase
博士

ブー!残念!一番変わったのは、私がさらに賢くなったことじゃ!…って、冗談じゃぞ!

⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。

Search