(我不知道我是否应该在这里问这个问题)我想运行两次相同的java程序,其中大部分变量都是静态的。
如果我(同时)运行两次,这些静态变量将具有相同的值还是不同的值?
由于静态变量是类变量,这让我感到困惑。
(我不知道我是否应该在这里问这个问题)我想运行两次相同的java程序,其中大部分变量都是静态的。
如果我(同时)运行两次,这些静态变量将具有相同的值还是不同的值?
由于静态变量是类变量,这让我感到困惑。
静态值是每个类的,如果你运行同一个 java 程序两次,那么它将创建两个 JVM(你会在任务列表中看到两个 java 进程),这将加载类两次(每个 JVM 一次),所以静态变量不会被共享。
每次运行都有自己的 JVM 实例,因此静态变量不会发生冲突。
如果您要启动应用程序两次,例如,通过:
java Your.MainClass
然后第二次运行的值将不受第一次运行的影响。这是一个全新的过程。
但是,如果您在单个应用程序的生命周期中运行了两次静态方法,那么我上面写的内容就不再适用了。