小白问一下:初始化代码块是怎么运行的,看下面的代码。
为什么需要实例化对象之后,初始化代码块才会执行,而静态初始化代码块不需要 实例化就可以执行
public class Demo {
/**
* @param args
*/
int num1;
int num2;
static int num3;
public Demo() {
num1 = 1;
System.out.println("构造方法块执行,num1=" + num1);
}
{
num2 = 2;
System.out.println("初始化代码块执行,num2=" + num2);
}
static {
num3=3;
System.out.println("静态初始化代码块执行,num3=" + num3);
}
public static void main(String[] args) {
// TODO Auto-generated method stub
/*Demo demo=new Demo();
System.out.println("num1="+demo.num1);
System.out.println("num1="+demo.num2);
System.out.println("num1="+Demo.num3);*/
}
}运行结果
静态初始化代码块执行,num3=3