【问题标题】:Run same java program twice having static variable in class运行相同的java程序两次在类中有静态变量
【发布时间】:2011-11-12 01:58:26
【问题描述】:

(我不知道我是否应该在这里问这个) 我想运行 同一个 java 程序两次,它具有大部分变量 static.

如果我(同时)运行两次,这些静态变量的值是否相同或不同?

由于静态变量是类变量,这让我很困惑。

【问题讨论】:

  • 运行同一个java程序两次到底是什么意思?退出它并重新运行它?重新运行一个函数?等
  • 我想同时运行两次,像 java MyProgram 和 java MyProgram 一样,这两个实例将同时执行。

标签: java variables static scope class-variables


【解决方案1】:

静态值是每个类的,如果你运行同一个 java 程序两次,那么它将创建两个 JVM(你会在任务列表中看到两个 java 进程),这将加载类两次(每个 JVM 一次),因此不会共享静态变量。

【讨论】:

    【解决方案2】:

    每次运行都有自己的 JVM 实例,因此静态变量不会发生冲突。

    【讨论】:

      【解决方案3】:

      如果您要启动应用程序两次,例如,通过:

      java Your.MainClass
      

      那么第二次运行的值将不受第一次运行的影响。这是一个全新的过程。

      但是,如果您在单个应用程序的生命周期中运行了两次静态方法,那么我上面写的内容就不再适用了。

      【讨论】:

        猜你喜欢
        • 2016-01-29
        • 2011-01-08
        • 2015-09-13
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多