为什么类的加载过程会是静态变量num3在最前面?
public class HelloWorld {
int num1;
int num2;
static int num3;
public HelloWorld(){
num1=89;
System.out.println("通过构造方法为变量num1赋值");
}
{
num2=90;
System.out.println("通过初始化块为变量num2赋值");
}
static{
num3=78;
System.out.println("通过静态初始化块为变量num3赋值");
}
public static void main(String[] args) {
HelloWorld hello2=new HelloWorld();
HelloWorld hello=new HelloWorld();
System.out.println(hello.num1);
System.out.println(hello.num2);
System.out.println(num3);
}
执行结果:
通过静态初始化块为变量num3赋值
通过初始化块为变量num2赋值
通过构造方法为变量num1赋值
通过初始化块为变量num2赋值
通过构造方法为变量num1赋值
89
90
78