在类中运行相同的java程序两次使用静态变量

时间:2011-09-07 11:27:43

标签: java variables static scope class-variables

(我不知道我是否应该在这里问这个问题) 我想运行两次相同的java程序,其中大部分变量都是 static。

如果我运行两次(同时)这些静态变量是否具有相同的值或不同?

由于静态变量是类变量,这让我感到困惑。

3 个答案:

答案 0 :(得分:9)

静态值是每个类,如果你运行相同的java程序两次,那么它将创建两个JVM(你将在任务列表中看到两个java进程),这将加载类两次(每个JVM一次) ),因此不会共享静态变量。

答案 1 :(得分:1)

每次运行都有自己的JVM实例,因此静态变量不会发生冲突。

答案 2 :(得分:0)

如果您要启动应用程序两次,例如,通过:

java Your.MainClass

然后第一次运行不会影响第二次运行的值。这是一个全新的过程。

但是,如果你在一个应用程序的生命周期中运行两次静态方法,那么我上面写的内容就不再适用了。