Java JVM静态变量

Java JVM静态变量,java,jar,static,jvm,classloader,Java,Jar,Static,Jvm,Classloader,我一次在同一台机器上运行同一应用程序的两个实例(使用java-jarmyapp.jar)。在我的一个类中,我创建了一个类级变量(static)。这两个应用程序在同一JVM下运行时是否共享相同的静态变量,或者将为这两个实例创建单独的JVM实例 如果创建了单独的JVM实例,则类加载器会加载我的类的2个单独实例,其中包含静态变量 我没有使用任何自定义类加载器*不,它们不会共享同一个变量 每个进程都分配了自己的内存空间,并且将无法访问另一个进程的内存,除非使用IPC或其他进程通信协议。如果调用java-

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

如果创建了单独的JVM实例,则类加载器会加载我的类的2个单独实例,其中包含静态变量


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

不,它们不会共享同一个变量


每个进程都分配了自己的内存空间,并且将无法访问另一个进程的内存,除非使用IPC或其他进程通信协议。

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