JVM静态变量

时间:2014-06-18 16:17:40

标签: java jar static jvm classloader

我一次在同一台机器上运行同一应用程序的2个实例(使用java-jar MyApp.jar)。在我的一个类中,我创建了一个类级变量(静态)。两个应用程序是否共享相同的静态变量,因为它们在同一JVM下运行,或者将为两个实例创建单独的JVM实例。

如果创建了单独的JVM实例,则类加载器加载2个具有静态变量的My class的独立实例?

我没有使用任何自定义类加载器*

2 个答案:

答案 0 :(得分:1)

不,他们不会共享相同的变量。

除非使用IPC或某些其他进程通信协议,否则每个进程都会分配自己的内存空间,并且无法访问其他进程的内存。

答案 1 :(得分:0)

如果致电java - jar MyApp.jar,您将启动新JVM 。这个JVM加载自己的类,有自己的内存和自己的线程(等等)。它不会与之前或之后启动的任何其他JVM共享任何内容。两个JVM都没有以任何方式相互连接。你只需启动你的应用两次。