Запустите одну и ту же Java-программу дважды со статической переменной в классе - PullRequest
1 голос
/ 07 сентября 2011

(я не знаю, должен ли я задать это здесь или нет) Я хочу запустить одну и ту же Java-программу дважды , в которой большинство переменных статические.

если я запускаю это дважды (одновременно), будут ли эти статические переменные иметь одинаковые или разные значения?

Поскольку статические переменные являются переменными класса, меня это смущает.

Ответы [ 3 ]

9 голосов
/ 07 сентября 2011

Статические значения для каждого класса, и если вы дважды запускаете одну и ту же Java-программу, она создаст две JVM (вы увидите два java-процесса в списке задач), которые будут загружать класс дважды (один раз для JVM).), поэтому статические переменные не будут использоваться совместно.

1 голос
/ 07 сентября 2011

Каждый прогон будет иметь свой собственный экземпляр JVM, поэтому статические переменные не будут конфликтовать.

0 голосов
/ 07 сентября 2011

Если вы запускаете приложение два раза, например, через:

java Your.MainClass

, то значения для 2-го цикла не будут зависеть от первого запуска.Это совершенно новый процесс.

Если, однако, вы используете статический метод два раза, в жизненном цикле одного приложения, то, что я написал выше, больше не выполняется.

...