Java_classes がいつロードされるか (コード ブロックで示されています)

結論は

1.オブジェクトインスタンス作成時(新規)

2. サブクラス オブジェクトのインスタンスを作成すると、親クラスも読み込まれます

3. クラスの静的メンバー(静的プロパティ、静的メソッド)を使用する場合

コードに直接

public class CodeBlockDetail01 {
    public static void main(String[] args) {
        BB bb = new BB();
        System.out.println(Cat.n1);
    }
}
class Cat{
    public static int n1 = 888;
    static {
        System.out.println("Cat的静态代码块被被调用");
    }
}
class AA{
    {
        System.out.println("AA类被加载");
    }
}
class BB extends AA{
    {
        System.out.println("BB类被加载");
    }
}

 操作の結果は次のとおりです。

AA クラスがロードされます
BB クラスがロードされます
Cat の静的コード ブロックは
888と呼ばれます

おすすめ

転載: blog.csdn.net/ming2060/article/details/127800424