2

在java中,静态变量只有一个实例,并且值在同一环境中的所有线程之间共享。但是我的问题是当应用程序部署在集群中时,如果访问和更改应用程序,值是否保持不变通过集群的不同实例?

或者对于集群的每个实例,它会发生变化并保持不变?

4

3 回答 3

2

如果您询问多个 JVM 是否共享内存,那么不,它们不共享。

每个 JVM 都有自己的类及其静态字段的副本。

于 2012-07-13T09:24:25.130 回答
1

在集群中运行的每个 JVM 实例都是相同的。在不同的运行 JVM 中会有不同的实例。而且,更准确地说,由于在同一个 JVM 中可以有多个类加载器,它们每个都有自己的实例。

于 2012-07-13T09:23:46.553 回答
1

我不确定您对集群的定义。但是,如果您的意思是不同的 JVM 一起工作,那么静态变量是每个 JVM 一个。
例如,
如果您的集群中有 10 个 JVM,则将有 10 个静态变量实例,每个实例相互独立。

于 2012-07-13T09:25:45.483 回答