1

Java でクラスをロードすると、最初にstatic ブロックが実行され、次にデフォルトのコンストラクターが実行されます。しかし、以下のコードでは、デフォルトのコンストラクターが静的ブロックの前に実行されていることがわかりました。

    public class Hello {

    private static Hello hello = new Hello();

    public Hello() {
        System.out.println("Hello Default Constructor");
    }

    static {
        System.out.println("Hello Static Block");
    }

    public static Hello createHelloInstance() {
        return hello;
    }
}

メインクラス:

   public class MainTest {

        public static void main(String a[])
        {
            Hello.createHelloInstance();
        }
    }

出力:

Hello Default Constructor
Hello Static Block

その背後にある基本的な概念を知る必要があります。何が起こっているのでしょうか。? 誰かがその背後にある流れを理解するのを手伝ってくれませんか.

4

3 に答える 3