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

Javaのコンストラクターに関して、非静的ブロックの実行順序はどのようになっていますか?


オブジェクトが作成されるたびに、非静的ブロック コンストラクターの実行前に実行されます。

非静的ブロック

  • 非静的ブロック クラスレベルです プロトタイプがないブロック。
  • 非静的ブロックの必要性 コンストラクタに関係なく、オブジェクトが作成されるたびにロジックを実行することです。 。
  • 非静的ブロック JVMによって自動的に呼び出されます javaスタック領域でオブジェクトを作成するたびに 。
  • 任意の数の非静的ブロックを作成できます nJava。
  • 実行順序 非静的ブロック定義された順序です 。

public class NonStaticBlockTest {
   {
      System.out.println("First Non-Static Block"); // first non-static block
   }
   {
      System.out.println("Second Non-Static Block"); // second non-static block
   }
   {
      System.out.println("Third Non-Static Block"); // third non-static block
   }
   NonStaticBlockTest() {
      System.out.println("Execution of a Constructor"); // Constructor
   }
   public static void main(String args[]) {
      NonStaticBlockTest nsbt1 = new NonStaticBlockTest();
      NonStaticBlockTest nsbt2 = new NonStaticBlockTest();
   }
}

出力

First Non-Static Block
Second Non-Static Block
Third Non-Static Block
Execution of a Constructor
First Non-Static Block
Second Non-Static Block
Third Non-Static Block
Execution of a Constructor

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

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

  2. Javaで複数のcatchブロックを持つtryブロックを定義できますか?

    はい、Javaで複数のcatchブロックを含む1つのtryブロックを定義できます。 すべての試行は、少なくとも1つのキャッチブロックに関連付ける必要があり、関連付ける必要があります。 tryブロックで例外オブジェクトが識別され、複数のcatchブロックがある場合は常に、catchブロックが定義された順序に基づいてcatchブロックの優先順位が与えられます。 常に最初のキャッチブロックが最優先されます。最初のcatchブロックが識別された例外オブジェクトを処理できない場合、すぐ次のcatchブロックが考慮されます。 例 class TryWithMultipleCatch {