静态代码块,构造代码块,局部代码块

!!!执行顺序:静态代码块—构造代码块—构造函数
1、 静态代码块:在类加载时就加载,并且只被加载一次,一般用于项目的初始化
2、 构造代码块:在创建对象时会自动调用,每次创建对象都会被调用
3、 局部代码块:方法里的代码块

public class haha {
       public static void main(String[] args) {
              //必须创建对象,不然静态代码块咋随着类的加载而加载。。
              Block m =  new Block();//静态1  静态2  构造1  构造2  局部1
              System.out.println();
              Block m2 =  new Block();//构造1  构造2  局部1,说明静态代码只被执行一次就是在类第一次初始化时
       }
}
class Block{
       {
              System.out.println("构造1");
       }
       static{
              System.out.println("静态1");
       }
       public Block(){
              {
                     System.out.println("局部1");
              }
       }
       {
              System.out.println("构造2");
       }
       static{
              System.out.println("静态2");
       }
}

Q.E.D.


努力成就未来