你的位置:首页 > Java教程

[Java教程]static代码块与{}代码块的比较


第一个例子:

public class StaticDemo {  {    System.out.println("{} 代码块");  }  static{    System.out.println("static 代码块");  }    public static void main(String[] args) {      }}

static 代码块

View Code

      结论:类的加载会执行static代码块,不会执行{}代码块。

第二个例子:

public class StaticDemo2 {    {    System.out.println("{} 代码块");  }    static{    System.out.println("static 代码块");  }    public static void main(String[] args) {    new StaticDemo2();  }}

static 代码块{} 代码块

View Code

     结论: new一个类的实例,会先执行static代码块,再执行{}代码块。

第三个例子:

public class StaticDemo3 {   public StaticDemo3(){    System.out.println("构造函数");  }   {    System.out.println("{} 代码块");  }  static{    System.out.println("static 代码块");  }    public static void main(String[] args) {    new StaticDemo3();  }}

static 代码块{} 代码块构造函数

View Code

      结论:new一个类的实例,会先执行static代码块,再执行{}代码块,最后执行构造函数。