Когда мы загружаем класс в java, сначала выполняется stati c block , а затем конструктор по умолчанию . но в приведенном ниже коде, Как я заметил, конструктор по умолчанию выполняется перед блоком stati c.
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
Мне нужно знать фундаментальную концепцию этого. что это так происходит. ? Может ли кто-нибудь помочь мне понять, что за этим стоит.