ホームページ  >  記事  >  Java  >  Java の登場 新機能 ?

Java の登場 新機能 ?

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-09-20 07:01:31826ブラウズ

Java Has Arrived What

Java 23 が正式にリリースされました。これは非 LTS (長期サポート) リリースです。短期間のバージョンではありますが、Java 23 には、魅力的な改善、バグ修正が満載されており、また、注意を払う必要がある削除された機能やオプションも含まれています。

新機能と、それが JDK 21 や JDK 22 などの前のバージョンの機能にどのように基づいて構築されているかについて詳しく見てみましょう。

スコープ指定された値: JDK 22 および JDK 21 プレビューに基づく構築

JDK 23 で最も期待されている機能の 1 つは、スコープ値 (プレビュー) です。この機能は、JDK 22 と JDK 21 の両方でプレビューされており、メソッドがスレッドおよび子スレッド間で不変データを共有する方法を簡素化します。以前の Java バージョンでは、スレッドローカル データの処理が面倒でメモリを大量に消費する可能性がありました。スコープ付きの値は、より効率的でオーバーヘッドの低い代替手段を提供することで、この状況を変えます。

JDK 23 の違いは何ですか? ScopedValue.callWhere() メソッドは、新しい関数インターフェイスを使用するようになりました。これにより、チェック例外がスローされるかどうかをコンパイラーが推測しやすくなります。これにより、ScopedValue.getWhere() メソッドも削除され、API がさらに合理化されました。

これは以前のリリースで見られた改善の継続であり、スコープ付きの値が永続的な機能に向けて進化しているのを見るのは興味深いことです。

構造化同時実行: 3 番目のプレビュー

Java の同時実行モデルは常に強力ですが、管理が困難です。 構造化同時実行 (プレビュー) を入力します。これは、JDK 21 で初めて登場し、JDK 23 で 3 回目のプレビューに達しました。ここでのアイデアは、異なるスレッドで実行されている関連タスクを 1 つのグループにグループ化することで、同時プログラミングをより直観的にすることです。単一の作業単位。これにより、エラー処理が簡素化され、キャンセル プロセスの信頼性が向上します。

JDK 23 では、構造化同時実行機能はプレビュー段階にありますが、引き続き同時実行コードの推論が容易になり、エラーが発生しにくくなります。 JDK 21 または JDK 22 のプレビューを使用したことがある場合は、この機能がどのように成熟したかを理解するでしょう。スレッド リークなどの一般的な同時実行の問題に対処するための機能が強化され、信頼性の高いマルチスレッド コードを簡単に作成できるようになりました。

柔軟なコンストラクター本体: JDK 22 からの進化

もう 1 つの歓迎すべき追加機能は、フレキシブル コンストラクター ボディ (プレビュー) です。 JDK 22 で「super() の前のステートメント」として最初にプレビューされたこの機能により、開発者はスーパークラス コンストラクターを呼び出す前に初期化コードを作成できます。この一見小さな変更により、コンストラクター ロジックがより明確になり、検証やその他のセットアップ ロジックが失敗した場合に不必要なオブジェクトが作成されるのを防ぐことができます。

JDK 22 では、この機能は開発者がコンストラクター ロジックをより詳細に制御できるようにするために導入されました。JDK 23 の 2 番目のプレビューでは引き続きその機能が改良されています。初期化ロジックをスーパークラス呼び出しの前に移動することにより、開発者は、以前はコードベースを乱雑にしていた乱雑な補助静的メソッドや中間コンストラクターを回避できます。

暗黙的に宣言されたクラス: 3 回目も魅力的

Java を教えたり、簡単なスクリプトを書いたりする人にとって、暗黙的に宣言されたクラスとインスタンス メソッドは、JDK 21 で導入されて以来、大きな変革をもたらしてきました。この機能により、初心者は理解する必要がなく、簡略化された Java プログラムを作成できます。最初から複雑な言語機能を備えています。

JDK 23 では、この機能にいくつかの追加のアップグレードが行われます。現在、暗黙的に宣言されたクラスは、単純なテキスト I/O 用の 3 つの静的メソッドを自動的にインポートできるようになり、必要に応じて java.base モジュールのすべてのパブリック トップレベル クラスとインターフェイスもインポートされます。これらの機能強化により、初心者の学習曲線がさらにスムーズになります。

モジュールのインポート宣言: 新しいプレビュー

JDK 23 の新しいプレビュー機能の 1 つは、モジュール インポート宣言 です。この機能を使用すると、モジュールによってエクスポートされたすべてのパッケージを 1 つのステートメントでインポートできるため、モジュール ライブラリの再利用が簡素化されます。これは、パッケージが階層内のどこにあるかを覚える必要がなくなった初心者にとって特に便利で、複数の type-import-on-demand 宣言によって生じる混乱を軽減します。

これは JDK 23 の新しい機能ですが、特にモジュラー プログラミングを初めて使用する人にとって、Java のモジュール システムをよりアクセスしやすくする上で大きな期待が持てます。

Markdown ドキュメントのコメント: Javadoc の新時代

正直に言うと、HTML と @ タグを使用して JavaDoc を記述するのは面倒な場合があります。 JDK 23 では、Markdown Documentation Comments (プレビュー) 機能により、開発者は Markdown を使用して API ドキュメントを作成でき、読みやすく適切にフォーマットされたコメントを簡単に作成できるようになります。

これは JDK 23 の新機能ですが、何年も前に追加されるべきものでした。 Markdown は開発者コミュニティで広く使用されており、これを JavaDoc に導入すると、ドキュメントの作成と保守がはるかに簡単になります。

Z ガベージ コレクター (ZGC): デフォルトで世代別モード

JDK 15 での導入以来 Z ガベージ コレクター (ZGC) を使用している場合は、JDK 23 では ZGC がデフォルトで 世代別になったことを知って興奮するでしょう。モード (JEP 474)。このスイッチは、存続期間の短いオブジェクトの頻繁な収集に重点を置くことにより、アプリケーションのパフォーマンスを向上させます。非世代別 ZGC はこのリリースで非推奨になりましたが、これは世代別アプローチが Java のガベージ コレクションの将来であることを示す明らかな兆候です。

JDK 22 以前で実行している場合は、JDK 23 に移行すると、大きな労力をかけずにパフォーマンスが大幅に向上するはずです。

Vector API: まだ開発中ですが、より強力です

JDK 16 で導入された Vector API を使用すると、開発者は実行時に最適なベクトル命令にコンパイルするベクトル計算を実行できます。 API は進化を続けており、JDK 23 では 8 番目のインキュベーター が登場します。この API はまだ開発中です。つまり、まだ完成した機能ではありませんが、徐々に完成に近づいています。

パフォーマンスが重要なアプリケーション、特に大規模なデータセットを扱うアプリケーションの場合、Vector API は大幅な高速化を実現します。以前のインキュベーション (JDK 22 など) でこれを使用したことがある場合は、現在はさらに安定していることがわかりますが、最終的な部分が所定の位置に収まるのをまだ待っています (おそらく Project Valhalla に関連しています)。

ストリームギャザラー: 2 回目のプレビュー

JDK 22 では、カスタム中間操作を可能にすることで Stream API に柔軟性を追加する機能である Stream Gatherer (プレビュー) が導入されました。 JDK 23 では、2 回目のプレビューに戻ってきました。ストリームを使用してデータを処理することが好きな場合は、以前は実現が困難だった方法でデータ パイプラインを変換できるこの機能の機能に感謝するでしょう。

ストリーム ギャザラーはストリームの能力を拡張し、開発者が特に無限ストリームやカスタム変換を扱う場合に、より複雑なシナリオを簡単に処理できるようにします。

クラスファイル API: 2 番目のプレビュー

Java クラス ファイルを操作するツールを構築している場合は、JDK 23 の Class-File API (プレビュー) が最適です。 JDK 22 で初めて導入されたこの API は、ASM などのサードパーティ ライブラリを必要とせずにクラス ファイルを解析および生成する標準的な方法を提供します。 JDK 23 の 2 番目のプレビューでは、この API が改良され、より合理化され、操作しやすくなりました。

ツール開発者にとって、これは大きな問題です。 JVM 仕様が変更されるたびにライブラリを慌てて更新する必要はもうありません。Java にはファーストパーティのソリューションが用意されています。

まとめ: アップグレードする必要がありますか?

Java 23 は LTS リリースではないかもしれませんが、JDK 21 と JDK 22 で導入されたものに基づいて構築されたエキサイティングな機能が満載です。スコープ指定された値や構造化された同時実行性から、より優れたガベージ コレクターやストリームとコンストラクターの改善に至るまで、このリリースは Java 開発を前進させます。

以上がJava の登場 新機能 ?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。