2011-09-07 48 views
1

(我不知道我是否應該向這位這裏與否) 我想運行相同的java程序兩次其中有大部分的變量靜態的。運行相同的Java程序有兩次靜態變量在

如果我跑了兩次(同時)這些靜態變量會有相同的值還是不同的?

由於靜態變量是類變量,這使我感到困惑。

+0

通過兩次運行相同的Java程序,你的意思是什麼?退出並重新運行它?重新運行一個函數? etc – apscience

+0

我想要正式運行它兩次,如java MyProgram和java MyProgram,並且這兩個實例將同時執行。 – samarth

回答

9

靜態值是每個類的,如果你運行同一個java程序兩次,那麼它將創建兩個JVM(你會在任務列表中看到兩個java進程),它會加載類兩次(每次一次JVM),所以靜態變量將不會被共享。

0

如果你啓動應用程序的兩倍,例如,通過:

java Your.MainClass 

然後在第二次運行中的值將不會受到第一次運行的影響。這是一個全新的過程。

如果無論您在單個應用程序的生命週期中運行兩次靜態方法,那麼我上面寫的內容已經不再適用。

1

每次運行都會有自己的JVM實例,所以靜態變量不會發生衝突。