gpt4 book ai didi

java - 在Java中使用大括号的奇怪行为

转载 作者:IT老高 更新时间:2023-10-28 20:44:31 27 4
gpt4 key购买 nike

当我运行以下代码时:

public class Test {

Test(){
System.out.println("1");
}

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

static {
System.out.println("3");
}

public static void main(String args[]) {
new Test();
}
}

我希望按这个顺序得到输出:

1
2
3

但我得到的是相反的顺序:

3
2
1

谁能解释一下为什么会倒序输出?

=================

另外,当我创建多个 Test 实例时:

new Test();
new Test();
new Test();
new Test();

静态 block 在第一次执行。

最佳答案

这完全取决于初始化语句的执行顺序。您的测试表明这个顺序是:

  1. 静态初始化 block
  2. 实例初始化 block
  3. 构造函数

编辑

感谢您的评论,现在我可以引用 JVM 规范中的适当部分了。 Here就是,详细的初始化过程。

关于java - 在Java中使用大括号的奇怪行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8185780/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com