class Hello12 {
static int b = 10;
static {
b = 100;
}
}
class sample {
public static void main(String args[]) {
System.out.println(Hello12.b);
}
}
运行以上代码,输出结果为100,因为当调用Hello类时,静态块首先被执行,将b的值设置为100并显示它。但是当我编写以下代码时:
class Hello12 {
static {
b = 100;
}
static int b = 10;
}
class sample {
public static void main(String args[]) {
System.out.println(Hello12.b);
}
}
这里的输出结果是10。我期望的答案是100,因为一旦静态块被执行,它会给b赋值为100。所以当在main()中调用Hello.b时,它应该引用b(=100)。那么这两段代码中b的内存是如何分配的呢?