JAVA中的静态初始化块、初始化块、构造方法的执行顺序JAVA中的静态初始化块、初始化块、构造方法的执行顺序cla
JAVA中的静态初始化块、初始化块、构造方法的执行顺序
JAVA中的静态初始化块、初始化块、构造方法的执行顺序
class Test2 { //构造方法 public Test2() { System.out.println("构造方法"); } //初始化代码块 { System.out.println("初始化代码块"); } //静态初始化代码块 static { System.out.println("静态初始化代码块"); } public static void main(String args[]) { Test2 t1 = new Test2(); System.out.println("----------第二次实例化----------"); Test2 t2 = new Test2(); } } 结果:
静态初始化代码块
初始化代码块
构造方法
----------第二次实例化----------
初始化代码块
构造方法
当第一次实例化Test2后,执行顺序是:静态初始化代码块>初始化代码块>构造方法
当第二次实例化Test2后,执行顺序是:初始化代码块>构造方法
为什么第二次没有执行静态初始化块呢,因为静态初始化块只会在第一次装入系统的时候运行,当再次实例化的时候就不需要再执行了,因为已经存在了
