Java 类中代码的执行顺序

更多 Java 基础知识方面的文章,请参见文集《Java 基础知识》


按照如下的顺序执行:

  • 静态代码块
    • 类加载时执行且只执行一次。因此如果该类之前已经被加载,则不执行静态代码块。
    • 如果有多个静态代码块,则按照顺序依次执行。
    • 如果该类继承于某个父类:
      • 如果父类之前未被加载,则先执行父类的静态代码块,再执行自身的静态代码块
      • 否则,直接执行自身的静态代码块
  • main 方法
  • 构造块:给对象进行初始化,对象一建立就运行构造快代码,且先于构造方法。
  • 构造方法
    • 如果该类继承于某个父类,则先执行父类的构造块和构造方法,再执行自身的构造块和构造方法

示例

public class Exec_Order_Test {
    static {
        System.out.println("static block 1");
    }

    static {
        System.out.println("static block 2");
    }

    {
        System.out.println("constructor block");
    }

    public Exec_Order_Test() {
        System.out.println("constructor method");
    }

    public static void main(String[] args) {
        System.out.println("main method");

        Exec_Order_Test t = new Exec_Order_Test();
    }
}

输出如下:

static block 1
static block 2
main method
constructor block
constructor method

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容