/*1.静态代码块:用static声明,JVM加载类的时候执行,只执行一次2.静态变量,也是加载类的时候执行,只执行一次3.静态代码块和静态变量谁在前先执行谁4.构造代码块:直接用{}定义,在每次创建对象时执行5.执行顺序优先级:静态代码块>main()>构造块>构造方法本题中,先加载静态变量,new Test(),new的时候会加载该类中的构造代码块,然后加载静态代码块,然后执行main()函数,new Test(),再次执行构造代码块*/
public class Test {//静态变量public static Test t1 = new Test();//直接用{}声明,无static关键字,为构造代码块{System.out.println("构造代码块执行");}//static{}为静态代码块static {System.out.println("静态代码块执行了");}public static void main(String[] args) {Test t2 = new Test();}}
输出为:
构造代码块执行
静态代码块执行了
构造代码块执行