静态代码块、代码块、构造函数执行顺序

  • 静态代码块中的代码会在类加载JVM时运行,且只被执行一次
  • 执行构造函数之前,执行代码块
  • new对象,执行构造函数

测试1


public class T {

    {
        System.out.println("《执行构造函数之前,执行代码块》");
    }
    static {
        System.out.println("【静态代码块中的代码会在类加载JVM时运行,且只被执行一次】");
    }
    T(){
        System.out.println("new对象,执行构造函数");
    }

    public static void main(String[] args) {
        T t = new T();
        t = new T();
        t = new T();
    }

}

 

测试2

public class T {
    static {
        System.out.println("1链接准备阶段为类变量分配内存设置默认初始值" +
                "\n2类的初始化类变量和静态代码块中的代码合并");
        i = 200;
    }
    static int i = 100;

    public static void main(String[] args) {
        //【1链接准备阶段为类变量分配内存设置默认初始值  2类的初始化类变量和静态代码块中的代码合并 100】
        System.out.println(i);
    }
}

 

posted @ 2022-05-31 17:37  禁止摆烂  阅读(24)  评论(0)    收藏  举报