Java 变量创建和静态块的执行顺序
此执行的输出为Java 变量创建和静态块的执行顺序,java,Java,此执行的输出为2。有人能解释一下为什么不1?创建和初始化序列变量以及执行静态块的步骤? 请查看java文档 然后清楚地提到,无论静态块在那里有多大,它们都将按照它们出现的顺序作为单个块执行 所以 我的理解是,java将您的代码视为 class F { static { i = 1; } static int i = 2; public static void main(String[] args) { System.out.
2
。有人能解释一下为什么不1
?创建和初始化序列变量以及执行静态块的步骤?
请查看java文档
然后清楚地提到,无论静态块在那里有多大,它们都将按照它们出现的顺序作为单个块执行
所以
我的理解是,java将您的代码视为
class F
{
static
{
i = 1;
}
static int i = 2;
public static void main(String[] args)
{
System.out.println(i);
}
}
静态int-i
这就是您获得输出2的原因
希望这有帮助嗨,你需要问一个问题!谢谢你,亚当。这个执行的输出是“2”,有人能解释为什么不是“1”吗。其中序列变量被创建和初始化,静态块被执行。谢谢Avi。如果我添加System.out.println(i);在i=1以下的静态块中;我得到编译时错误。
static{
i=1;
i=2;
}