牛客题:Java静态块、构造块执行顺序

牛客题:Java静态块、构造块执行顺序,第1张

牛客题:Java静态块、构造执行顺序
public class Test
{
    public static Test t1 = new Test();//静态变量

    //构造块
    {
        System.out.println("AAA");
    }

    //静态块
    static
    {
        System.out.println("BBB");
    }
    public static void main(String[] args)
    {
        Test t2 = new Test();
        System.out.println("CCC");
    }
}

运行结果:

 

静态块:用staitc声明,jvm加载类时执行,仅执行一次

构造代码块:类中直接用{}定义,每一次创建对象时执行。

执行顺序优先级:静态域,main(),构造代码块,构造方法。

1 静态块 :首先执行,第一个静态域是一个静态变量 public static Test t1 = new Test(); 创建了Test 对象,会执行构造块代码,所以输出blockA。然后执行第二个静态块(即静态代码块)输出blockB。

2 main():Test t2 = new Test()执行,创建Test类对象,只会执行构造代码块(创建对象时执行),输出blockA。

3 构造代码块只会在创建对象时执行,没创建任何对象了,所以没输出。

4 构造函数:使用默认构造函数,没任何输出。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5434529.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-11
下一篇 2022-12-11

发表评论

登录后才能评论

评论列表(0条)

保存