Java
 Computer >> コンピューター >  >> プログラミング >> Java

Java9でFlowAPIを実行する手順は何ですか?


フローAPI Java9ではリアクティブストリームに対応します デファクトスタンダードである仕様。非同期の公開とサブスクリプションの核心を捉える最小限のインターフェースセットが含まれています。

以下はFlowAPIの主要なインターフェースです :

1) フロー。 発行元: サブスクライバーが消費するアイテムを生成し、メソッドのみが含まれています: subscribe(Subscriber) 、その目的は明白でなければなりません。

構文

void subscribe(Flow.Subscriber<? super T> subscriber)

2) フロー。 サブスクライバー: パブリッシャー(通常は1つのみ)にサブスクライブして、アイテムを受信します(メソッド onNext(T)を使用) )、エラーメッセージ( onError(Throwable) )、またはこれ以上アイテムが期待されないというシグナル( onComplete() )。これらのいずれかが発生する前に、サイト運営者は onSubscription(Subscription)に電話をかけます メソッド。

構文

void onSubscribe(Flow.Subscription subscription)
void onNext(T item)
void onError(Throwable throwable)
void onComplete()

3) フロー。 サブスクリプション: 単一のパブリッシャー間の接続 および単一のサブスクライバー 。サブスクライバーはこれを使用して、より多くのアイテムをリクエストできます( request(long) )または接続を切断します( cancel()

構文

void request(long n)
void cancel()
フローAPIの実行手順:


  • まず、パブリッシャーを作成する必要があります およびサブスクライバー
  • サブスクライバーをPublisher::subscribeでサブスクライブします 。
  • 発行者 サブスクリプションを作成します Subscriber ::onSubscriptionを呼び出します これを使用すると、サブスクライバーはサブスクリプションを保存できます。
  • ある時点で、サブスクライバーはサブスクリプション::に電話をかけます リクエスト いくつかのアイテムをリクエストします。
  • パブリッシャーはSubscriber::onNext に電話して、サブスクライバーにアイテムを渡し始めます。 。要求された数を超えるアイテムを公開することはありません。
  • サイト運営者は、ある時点で問題が発生し、サブスクライバー::onCompleteに電話をかける可能性があります。 またはSubscriber::onError それぞれ。
  • サブスクライバーは、時々追加のアイテムをリクエストし続けるか、サブスクリプション::キャンセルを呼び出して接続を切断することができます。 。

  1. Javaクラスの静的メンバーを読み取る手順は何ですか?

    静的変数は、静的ブロックの実行前であっても、クラスのロード時に作成されます。静的ブロックの目的は、静的変数に値を割り当てることです。静的変数は、それが定義されているクラスのすべてのインスタンス間で共有される値を格納し、静的ブロックは、クラスが最初にロードされるときに実行されるコードのセクションです。クラスの読み込み時に実行する必要のあるロジックが必要な場合は、クラスの読み込み時に実行されるように、そのロジックを静的ブロック内に配置する必要があります。 JVMは、以下の手順に従って、クラス内の静的メンバーを読み取ります:: 上から下への静的メンバーの識別 静的変数の割り当てと静的ブロックを上

  2. Javaプログラムを実行するために必要なさまざまな手順は何ですか?

    Javaプログラムの実行は、5つの主要なステップに従います 編集-ここでは、プログラマーは単純なエディターまたはメモ帳アプリケーションを使用してJavaプログラムを作成し、最後に「.java」拡張子を付けます。 コンパイル-このステップでは、プログラマーがjavacコマンドを実行し、.javaファイルがJava仮想マシンによって理解される言語であるバイトコードに変換されます(これにより、Javaプラットフォームが独立した言語になります)。このステップでは、コンパイル時のエラーが発生します。 ロード-次に、プログラムがメモリにロードされます。これは、バイトコードを含む.classファイルを取得