//実行順序: (優先順位は高から低)
静的コードブロック>メインメソッド>構築コードブロック>構築メソッド。
静的コード ブロックは 1 回だけ実行されます。構築コード ブロックは、オブジェクトが作成されるたびに実行されます。
1. 通常のコードブロック
public static void main(String[] args) { /*普通代码块: *直接定义在在方法或语句中出现”{普通代码的执行语句}“的就称为普通代码块。 *普通代码块执行顺序由他们在代码中出现的次序决定--“先出现先执行” * */ { System.out.println("这里是普通代码块A"); } //new A(); { System.out.println("这里是普通代码块B"); } }
実行結果: これが通常のコードブロックA
これが通常のコードブロックBです
2. 静的コードブロックと構築されたコードブロック
Java宣言済みのキーワードを使用しますコードブロック。
一般的にクラスの初期化に使用され、各静的コード ブロックは 1 回だけ実行されます (クラスがメモリにロードされるときに実行され、クラスがメモリにロードされた後にクラスはすでに存在します)。JVM が静的コードを実行するためです。クラスをロードするときにブロックされるため、メインメソッドの前に静的コードブロックが実行されます。クラスに複数の静的コード ブロックが含まれる場合、最初に定義されたコードが最初に実行され、その後に定義されたコードが実行されます。
1 静的コード ブロックはメソッド本体に存在できません。ブロックは静的なインスタンス変数とインスタンス メソッドに直接アクセスできません。クラスのインスタンス オブジェクトを通じてアクセスする必要があります。
構築ブロック: static キーワードを追加せずにクラス内で直接定義されたコード ブロックは、{} 構築コード ブロックと呼ばれます。コード ブロックはオブジェクトの作成時に呼び出され、構築コード ブロックの実行順序はクラス コンストラクターよりも優先されます:
ここに静的コード ブロックがあります。通常のコード ブロック Aこれが通常のコード ブロックです。 // クラス内のオブジェクトが作成されるたびに実行されます。 新しい構造体を追加します(); 実行結果は次のとおりです。通常のコード ブロック B
3. 概要の概要public class structure { { System.out.println("这里是普通代码块");//所有类中有一个默认的构造函数,这里的代码块为构造代码块,在类中的对象被创建时执行 } public static void main(String[] args) { /*普通代码块: *直接定义在在方法或语句中出现”{普通代码的执行语句}“的就称为普通代码块。 *普通代码块执行顺序由他们在代码中出现的次序决定--“先出现先执行” * */ { System.out.println("这里是普通代码块A"); } new structure();//第二次类加载时静态代码块不执行 //new A(); { System.out.println("这里是普通代码块B"); } } static{ System.out.println("这里是静态代码块"); } }
実行結果:
こちらが静的コード ブロックです
こちらが A の通常の静的コード ブロック 1 です
こちらは、A ブロック 1 の通常のコードです
ここに、B の通常のコード ブロックがあります
優先順位の概要: 静的コード ブロック>Main()>構築されたコード ブロック
さらに詳しくJava の通常のコード ブロックの分析 構築されたコード ブロックと静的コード ブロックに関連する記事については、PHP の中国語 Web サイトに注目してください