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