Java/JDK 21が正式リリースされました!15 の機能の概要

JDK 21 は 2023 年 9 月 19 日に正式にリリースされました。この記事では、JDK 21 でリリースされた新機能を要約します。

リリースノート

リリース計画によれば、今回リリースされるJDK 21は長期サポート版(LTS版)となる。LTS バージョンは 2 年ごとにリリースされ、最後の長期サポート バージョンは 21 年 9 月にリリースされた JDK 17 でした。

このバージョンは、Java Community Process のJSR 396で指定されている Java SE プラットフォーム バージョン 21 のリファレンス実装です。

インストールパッケージのダウンロード

主にOpenJDK版とOracle版に分かれており、ダウンロードアドレスは以下の通りです。

上記のバージョンを個人学習で使用する場合は、大きな違いはありません。ただし、商業目的で使用する場合は、関連する認可を注意深く確認する必要があります。Oracle JDK を商業的に使用するには、 Oracle の無料利用規約 (NFTC)契約に準拠する必要がありますが、OpenJDK は GPL v2 ライセンスに基づいてライセンスされています。

Java に関するさらに基本的な知識については、詳しく説明されている書籍「 Java Core Programming 」を参照してください。

JDK 21の新機能の説明

正式な安定した機能

JEP 431: シーケンス コレクション

Sequenced Collection はcore-libs/java.util:collectionsパッケージに含まれています。

JEP は、「コレクションの構造特性として要素が事前定義された順序または順序で配置されるコレクションの概念を表現するための新しいインターフェイス ファミリ」の導入を提案しています。この提案の動機は、事前定義された順序と順序が欠如しているためでした。統合された一連の操作。

JEP 439: 世代別 ZGC

世代別の ZGC がhotspot/gcパッケージに含まれています。

Z ガベージ コレクター (ZGC) を拡張して、新しいオブジェクトと古いオブジェクトの独立した生成を維持することで、アプリケーションのパフォーマンスを向上させます。これにより、ZGC は若いオブジェクト、つまり若くして死ぬ傾向にあるオブジェクトをより頻繁に収集できるようになります。

JEP 440: 録音モード

レコード パターンを使用して Java プログラミング言語を強化し、レコード値を分解します。レコード スキーマと型スキーマをネストして、強力で宣言型の構成可能な形式のデータ ナビゲーションと処理を可能にすることができます。

JEP 441: スイッチパターンマッチング

switch 式とステートメントのパターン マッチングにより Java プログラミング言語を強化します。パターン マッチングを switch に拡張することで、それぞれが特定の操作を持つ複数のパターンに対して式をテストできるため、複雑なデータ指向のクエリを簡潔かつ安全に表現できるようになります。

JEP 444: 仮想スレッド

Java プラットフォームに仮想スレッド (仮想スレッド) を導入します。仮想スレッドは、高スループットの同時アプリケーションの作成、保守、監視の労力を大幅に軽減する軽量のスレッドです。

詳細については、「Java 次世代高同時実行テクノロジ - 仮想スレッド (仮想スレッド)」を参照してください。

JEP 449: Windows 32 ビット x86 ポートの廃止

Windows 32 ビット x86 ポートは非​​推奨であり、将来のリリースで削除される予定です。

JEP 451: プロキシの動的ロードを無効にする準備をする

実行中の JVM にエージェントを動的にロードするときに警告します。これらの警告は、デフォルトで整合性を向上させるために、デフォルトではプロキシの動的ロードが許可されない将来のバージョンにユーザーが備えることを目的としています。起動時にエージェントの保守ツールをロードしても、どのビルドでも警告は発行されません。

JEP 452: キーカプセル化メカニズム API

公開キー暗号化を使用して対称キーを保護する暗号化テクノロジである Key Encapsulation Mechanism (KEM) の API を導入します。

プレビューフェーズ機能

JEP 430: 文字列テンプレート (プレビュー)

文字列テンプレートを使用して Java プログラミング言語を強化します。文字列テンプレートは、テキストを埋め込み式およびテンプレート プロセッサと結合して特殊な結果を生成することにより、Java の既存の文字列リテラルおよびテキスト ブロックを補完します。これは言語機能と API のプレビューです。

JEP 442: 外部関数とメモリ API (第 3 プレビュー)

Java プログラムが Java ランタイムの外部のコードやデータと相互運用できるようにする API を導入します。API は、外部関数 (つまり、JVM の外部のコード) を効率的に呼び出し、外部メモリ (つまり、JVM によって管理されないメモリ) に安全にアクセスすることにより、Java プログラムが JNI の脆弱性や危険性を持たずにネイティブ ライブラリを呼び出し、ネイティブ データを処理できるようにします。 。これはプレビュー API です。

JEP 443: 名前のないパターンと変数 (プレビュー)

名前のないパターンと名前のない変数を使用して Java 言語を強化します。名前のないパターン マッチングは、コンポーネントの名前やタイプを示さずにコンポーネントを記録します。名前のない変数は初期化できますが、使用できません。どちらも_アンダースコア文字で表されます。これはプレビュー言語機能です。

JEP 445: 名前のないクラスおよびインスタンスのメイン メソッド (プレビュー)

Java 言語を開発すると、学生は大規模なプログラム用に設計された言語機能を理解しなくても、初めてのプログラムを作成できます。別の Java 方言を使用せずに、学生はプログラムの単一クラスのコンパクトな宣言を作成し、スキルの向上に合わせてプログラムをシームレスに拡張して、より高度な機能を使用できます。これはプレビュー言語機能です。

JEP 446: スコープ付きの値 (プレビュー)

メソッド パラメーターを使用せずにメソッドに安全かつ効率的に共有できるスコープ付きの値を導入します。特に多数の仮想スレッドを使用する場合、これらはスレッド化されたローカル変数よりも優先されます。これはプレビュー API です。

実際、スコープ値は暗黙的なメソッド パラメーターです。一連の呼び出しの各メソッドに、追加の目に見えないパラメーターがあるかのように見えます。このパラメータを宣言するメソッドはありません。スコープ付きの値オブジェクトにアクセスできるメソッドのみがその値 (データ) にアクセスできます。スコープ付きの値を使用すると、データのパラメーターを宣言せず、データにアクセスできない一連の中間メソッドを通じて、呼び出し元からリモートの呼び出し先にデータを安全に渡すことができます。

JEP 453: 構造化同時実行 (プレビュー)

構造化同時実行の API を導入することで同時プログラミングを簡素化します。構造化された同時実行性は、異なるスレッドで実行されている関連タスクのグループを単一の作業単位として扱い、エラーの処理と除去を簡素化し、信頼性を向上させ、可観測性を強化します。これはプレビュー API です。

インキュベーションステージ機能

JEP 448: ベクター API (インキュベーター フェーズ 6)

サポートされている CPU アーキテクチャ上で実行時に最適なベクトル命令に確実にコンパイルされるベクトル計算を表す API を導入し、同等のスカラー計算よりも優れたパフォーマンスを実現します。

参考文献

JetBrains が Rust IDE をリリース: RustRover Java 21 / JDK 21 (LTS) GA 中国には非常に多くの Java 開発者がいることから、エコロジーレベルのアプリケーション開発フレームワーク .NET 8 が誕生するはずであり、パフォーマンスは大幅に向上しており、 をはるかに上回っています。 NET 7. PostgreSQL 16 は、Rust チームの元メンバーによってリリースされました。大変遺憾ながら名前をキャンセルしていただきました。 昨日、フロントエンドの Nue JS の削除を完了しました。作者は、新しい Web エコシステムを作成すると言っています。 NetEase Fuxi、「バグにより人事部から脅迫された」従業員の死亡に対応 任正非氏:私たちは第4次産業革命を迎えようとしている、Appleはファーウェイの師であるVercelの新製品「v0」:UIインターフェースコードをベースに生成文章
{{名前}}
{{名前}}

おすすめ

転載: my.oschina.net/waylau/blog/10112170