class Hello12 {
static int b = 10;
static {
b = 100;
}
}
class sample {
public static void main(String args[]) {
System.out.println(Hello12.b);
}
}
Run Code Online (Sandbox Code Playgroud)
在运行上面的代码时,输出为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);
}
}
Run Code Online (Sandbox Code Playgroud)
这里的输出为10.我希望答案为100,因为一旦执行静态块,它给b的值为100.所以在main()中,我调用Hello.b它应该引用b(= 100) .两个代码中的内存如何分配给b?