我知道静态变量只在加载类时创建和初始化一次,而不是每个对象。
在下面给出的代码中,我想要做的是:我在类 A 中将一个 int 变量“a”声明为静态,并为其赋值 5。当 main 执行时,我将其值更改为 6,并使程序无限循环。所以目前“a”值为6。
现在我尝试做的是,当 A 类仍在循环时,我尝试从其他类 B 访问此变量,并且我希望在运行 B 类时应该打印 6(因为当我运行 B 类“a”值时)改为 6) 但令人惊讶的是它仍然给了我 5。
即使我将“a”声明为静态,为什么会发生这种情况?无法弄清楚这种方法有什么问题。
class A{
static int a=5;
public static void main(String args[]){
System.out.println(A.a+"");
a=6;
while(true){
}
}
}
class B{
public static void main(String args[]){
System.out.println(A.a+"");
}
}