小白问一下:初始化代码块是怎么运行的,看下面的代码。
为什么需要实例化对象之后,初始化代码块才会执行,而静态初始化代码块不需要 实例化就可以执行
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