方案1:静态块VS中的静态变量初始化顺序
class A{
static int foo=56789;
static{
foo=999;
}
public static void main(String[] args) {
System.out.println(foo);
}
}
输出:999
方案2:
class A{
static {
foo=999;
}
static int foo=56789;
public static void main(String[] args) {
System.out.println(foo);
}
}
输出:56789
在情形2如何它将内存分配给foo变量(在静态块中),因为没有提及数据类型(作为代码)从顶部到底部运行)。
是不是你的问题实际上是你的问题的答案? – 2014-09-01 13:57:00
代码通常不从上到下运行吗?如果你交换两个语句的顺序,他们不会改变它们运行的顺序吗?这里的惊喜在哪里? – 2014-09-01 13:59:20
@PeterLawrey lawrey在场景2中,它如何将内存分配给foo变量,因为在静态块中没有提及数据类型 – atti 2014-09-01 14:27:58