1

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

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

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

4

3 回答 3

9

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

于 2011-09-07T11:30:14.823 回答
1

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

于 2011-09-07T11:35:01.250 回答
0

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

java Your.MainClass

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

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

于 2011-09-07T11:30:12.877 回答