黑马程序员_静态代码块

时间:2023-02-11 19:36:20

静态代码块的格式:

static{
    执行语句
}


 

特点:随着类的加载而加载,类一加载就执行,只执行一次。(用到类中的内容时类才会被加载,类名 变量名 = null 时,类不加载)

作用:给类进行初始化

还有一种代码块叫做构造代码块,优先于构造方法执行。也就是每执行一次构造方法,会先执行一次构造代码块。

考虑如下类:

class StaticCode{
  public StaticCode(){
    System.out.println("无参构造方法");
  }
  //构造代码块
  {
    System.out.println("构造代码块");
    }
  //静态代码块
  static{
    System.out.println("静态代码块");
  }
  public StaticCode(int x){
    System.out.println("含参数构造方法");
    }
}

现在在主方法中创造此类的两个实例:

class StaticDemo{
  public static void main(String[] args) {
  StaticCode cs1 = new StaticCode();
  StaticCode cs2 = new StaticCode(3);
  }

运行结果如下:

黑马程序员_静态代码块

静态代码块只执行了一次,优先于构造代码块,在类加载的时候执行;

每次执行构造方法之前都会执行构造代码块,构造代码块优先于构造方法执行。