我知道静态变量的创建和初始化只有一次I.e当类加载,而不是每个对象。在Java中静态变量的使用
在下面给出的代码中,我想要做的是:我在类A中声明了一个静态变量“a”,并将其赋值为5.当执行main时,我将其值更改为6,使程序无限循环。所以目前的“a”值是6.
现在我试图做的是我试图从其他类B类访问此变量时,类A仍然循环,我期望应该打印6当我跑B类(因为当我跑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+"");
}
}
您正在通过'A.main'和'B.main'运行两个独立的程序。您必须在同一个流程中使用线程来展示您期望看到的内容。 –
或更好 - 静态初始化块。 –
我不认为线程是必要的。在B中; 'pubic static void main(String [] args){A。主要(args);系统。出去。 println(A。a +“”); } – emory