当我们在 java 中加载一个类时,首先执行静态块,然后执行默认构造函数。但是在下面的代码中,我观察到默认构造函数是在静态块之前执行的。
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
我需要知道这背后的基本概念。这是怎么回事。? 有人可以帮助我了解其背后的流程。