我知道靜態變量的創建和初始化只有一次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