2011-09-07 50 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实例,所以静态变量不会发生冲突。