//実行注文:(高から低いものへの優先度。)
静的コードブロック> MIANメソッド>コンストラクトコードブロック>構成メソッド。
静的コードブロックは一度だけ実行されます。構築されたコードブロックは、オブジェクトが作成されるたびに実行されます。
1。通常のコードブロック
public static void main(string [] args){/ *通常のコードブロック: *メソッドまたはステートメントで直接定義されている "{通常のコード実行ステートメント}"はメソッドまたはステートメントに表示され、通常のコードブロックと呼ばれます。 *通常のコードブロックの実行の順序は、コードに表示される順序によって決定されます - 「最初に表示される "実行結果:通常のコードブロックaは次のとおりです
これが通常のコードブロックbです
2。静的コードブロックと建設コードブロック
Javaで静的キーワードを使用して宣言されたコードブロック。
クラスの初期化によく使用されます。各静的コードブロックは一度だけ実行されます(クラスはメモリにロードされるときに実行され、クラスがメモリにロードされた後にクラスはすでに存在します)。 JVMはクラスのロード時に静的コードブロックを実行するため、静的コードブロックはメインメソッドの前に実行されます。クラスに複数の静的コードブロックが含まれている場合、最初に「定義されたコード」によって実行され、次に定義されたコードが後で実行されます。
PS:
1つの静的コードブロックは、どのメソッド本体にも存在できません。
2静的コードブロックは、静的インスタンス変数とインスタンスメソッドに直接アクセスできず、クラスのインスタンスオブジェクトを介してアクセスする必要があります。
構造ブロック:クラスで直接定義され、静的キーワードがないコードブロックは、{}構造コードブロックと呼ばれます。
オブジェクトを作成するときにコンストラクターコードブロックが呼び出され、オブジェクトが作成されるたびに呼び出され、コンストラクターコードブロックの実行順序がクラスコンストラクターよりも優先されます。
パブリッククラス構造{{system.out.println( "これは通常のコードブロックです"); //すべてのクラスにデフォルトのコンストラクターがあります。ここのコードブロックは、クラス内のオブジェクトが作成されたときに実行されるコンストラクターコードブロックです} public static void main(/ *通常のコードブロック: *メソッドまたはステートメントで直接定義されている{{通常のコードの実行ステートメント}」は、メソッドまたはステートメントに表示されます。 *通常のコードブロックの実行の順序は、コードに表示される順序によって決定されます - 「最初に表示される」 b ");}} static {system.out.println("これは静的コードブロックです ");}}}実行結果:
ここに静的コードブロックがあります//メイン関数よりも優先的なのは通常のコードブロックです
これは、クラスの作成時に実行される通常のコードブロック//オブジェクトです。作成されるたびに、新しい構造()が追加されます。実行結果は次のとおりです。
これが通常のコードブロックbです
3。概要
パブリッククラス構造{{system.out.println( "以下は通常のコードブロックです") b ");}} static {system.out.println("ここに静的コードブロック ") a ");}}実行結果:
これが静的コードブロックです、ここには通常のコードブロックがあります
これが通常の静的コードブロック1です
これは、aの通常のコードブロック1です
これは、aの通常のコードブロック2です
これが通常のコードブロックbです
優先度の概要:静的コードブロック> main()> construct code block