Это зависит от многого. Вопрос не достаточно ясен, чтобы дать ответ «да/нет», на мой взгляд.
Если приложение каким-то образом предоставляет переменную, то, естественно, другие приложения могут просто попросить получить значение. Но это маловероятно, на что должен был быть поставлен вопрос. Но имейте это в виду. В интервью мне всегда было приятно доказать, что вы можете мыслить критически и вне коробки.
Я думаю, они хотели видеть, поняли ли вы концепцию статических переменных и ClassLoader
. Java-приложение динамически связано, что означает, что во время выполнения ClassLoader
(в зависимости от приложения) будет выполнять связывание, загрузку всех библиотек или делегирование загрузки. Статические переменные называются классом. Если вы попытаетесь получить доступ к статической переменной, класс 'ClassLoader
попытается найти и загрузить класс. Поскольку каждое приложение имеет свой собственный ClassLoader
, каждое приложение имеет свой собственный набор переменных.
Это не похоже на принцип разделения адресного пространства, найденного на более старых языках. Приложение работает в отдельном адресном пространстве, даже если оно размещено на одном компьютере. Таким образом, два приложения, работающие рядом друг с другом, не могут просто обращаться к переменным в адресном пространстве другого приложения, поскольку это будет нарушать ограничение, которое применяется несколькими сторожевыми псами. Но будьте осторожны, адресное пространство может быть разделено явно.
Было бы полезно получить комментарий с отрицательным голосом, чтобы я мог понять, что не так с моим ответом. – Eric