Java SE 24 がリリースされました。新機能、改善点などについて学びましょう。

Java Platform、Standard Edition

開発のXNUMXか月後、 OracleはJava SE 24のリリースを発表したオープンソースの OpenJDK プロジェクトに基づいており、下位互換性が維持されているため、以前に開発されたほとんどのプロジェクトは変更なしで引き続き実行できます。

長期サポート(LTS)リリースとは異なり、 Java SE 24は通常のサポートリリースです。 これは次のリリースまで更新されることを意味します。長期的な安定性を求める人のために、Java SE 21 と Java SE 17 はそれぞれ 2031 年と 2029 年までサポートされ続けます。さらに、Java SE 8 LTS の延長サポートは 2030 年まで継続され、Java SE 11 は 2032 年まで有効になります。

改善点と新機能

この新しいバージョンのJava SE 24では、 最も重要な改善点 の紹介です Shenandoah ガベージコレクターの実験的な生成モード (新しいオブジェクトと古いオブジェクトを別々に処理するように設計されています)。この新しいモードでは、短命のオブジェクトをクリーンアップする際の効率が向上し、メモリ使用量が最適化され、さまざまな負荷下でより安定したパフォーマンスが提供されます。

目立つもう一つの目新しさは HotSpot JVM でのコンパクト オブジェクト ヘッダーの実験的サポート96 ビット システムではサイズが 64 ビットから 64 ビットに縮小されます。この最適化により、ヒープ サイズが削減され、メモリ キャッシュの効率が向上します。

ガベージコレクター G1も再設計により最適化されました アプリケーションによるメモリへのアクセスを監視するバリア。バリア拡張は、C2 JIT コンパイラ内のコンパイル プロセスの後半で実行されるようになり、アプリケーションの種類に応じてオーバーヘッドが最大 20% 削減されます。

セキュリティと暗号化の改善

Java SE 24では、 暗号鍵の導出(KDF), 追加のキーの生成を許可する 秘密鍵と任意のデータセットから。この API はまだプレビュー段階ですが、プラットフォーム内のキー管理のセキュリティを強化します。

さらに、 APIの使用に関する警告が追加されました Java ネイティブ インターフェースと外部関数およびメモリネイティブ コードへのデフォルトのアクセスを制限する整合性モードの将来の実装に備えています。 sun.misc.Unsafe クラスを介して外部メモリ アクセス メソッドを使用する場合にも警告が有効になり、VarHandle API への移行が推奨されるようになりました。

一方、Java SE 24では、 ML-KEM暗号化アルゴリズムのサポート および ML-DSA (設計上 量子コンピューティング攻撃に耐性がある)。これらのアルゴリズムはネットワーク理論の問題に基づいており、従来のコンピュータと量子コンピュータの両方で解決時間が同等であることを保証します。

ブラウザ プラグインのサポートがなくなったため非推奨となっていた Java セキュリティ マネージャーは、完全に削除されました。

最適化

JVM HotSpotでは、クラスの事前ロードとリンクを早期に実行できるようになりました。これにより、アプリケーションの起動が大幅に高速化されます。最初の実行時に、クラスの状態がキャッシュされ、将来の起動時に読み込みが容易になります。

また、 スコープ値の実装が改善されました、現在pスレッド間で不変データを共有できる 従来のスレッドローカル変数メカニズムを置き換えて、より効率的にします。これは、何百万もの仮想スレッドを同時に操作する場合に特に便利です。

別の目新しさは ブロックされた状態での仮想スレッドの最適化。このリリースでは、ブロックされた仮想スレッドがプラットフォーム スレッドを解放し、他のスレッドで再利用できるようにすることで、マルチスレッドの使用率が高いシステムのスケーラビリティが向上します。

目立つ他の変更:

  • Stream API の新しい拡張機能により、カスタム中間操作を定義できるようになりました。
  • パターン マッチング エンジンが強化され、switch 式と instanceof 演算子でプリミティブ型 (int、byte、char など) がサポートされるようになりました。
  • Structured Concurrency API の 4 番目のプレビュー バージョンが追加されました。これにより、異なるスレッド上のタスクを単一の実行単位として扱うことで、マルチスレッド アプリケーションの開発が簡素化されます。
  • クラスを宣言して main() メソッドを定義するより簡単な方法が導入され、静的メソッドを持つパブリック クラスを定義する必要がなくなりました。
  • クラス ファイル API が追加され、Java クラス ファイルをより簡単にプログラム的に解析、生成、変換できるようになりました。

最後に、あなたがそれについてもっと知ることができることに興味があるなら、あなたはの詳細を調べることができます 次のリンク。

Java SE 24をダウンロード

新しいバージョンの Java SE 24 のインストールに興味がある人は、コンパイル (JDK、JRE、および Server JRE) がすでに準備が整っていることを知っておく必要があります。 Linux、Windows、macOS。