ホームページ  >  記事  >  Java  >  Java の通常のコード ブロック、構築されたコード ブロック、静的コード ブロックの詳細な分析

Java の通常のコード ブロック、構築されたコード ブロック、静的コード ブロックの詳細な分析

高洛峰
高洛峰オリジナル
2017-01-18 15:03:561331ブラウズ

//実行順序: (優先順位は高から低)

静的コードブロック>メインメソッド>構築コードブロック>構築メソッド。

静的コード ブロックは 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

こちらが A の通常の静的コード ブロック 1 です
こちらは、A ブロック 1 の通常のコードです

​​ここに、A 2 の通常のコード ブロックがあります

ここに、B の通常のコード ブロックがあります

優先順位の概要: 静的コード ブロック>Main()>構築されたコード ブロック

さらに詳しくJava の通常のコード ブロックの分析 構築されたコード ブロックと静的コード ブロックに関連する記事については、PHP の中国語 Web サイトに注目してください


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