Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
如果我声明一个变量 static 并将这个类编译成一个可执行的 jar。如果我使用这样的批处理文件开始这个类:
java MyClass java MyClass java MyClass
所有 3 个进程会共享相同的变量吗?
不可以。静态变量特定于 JVM 实例。事实上,不仅如此 - 它特定于加载类的类加载器。因此,如果您创建了三个单独的类加载器,每个都负责加载MyClass(不仅仅是委托给某个共同的父级),它们每个都有一个单独的、独立的静态变量在MyClass.
MyClass
静态资源是每个类加载器,因此,您的 3 个进程显然具有三个不同的类加载器,因此不会共享变量。