2015-06-29 4 views
6

Все объекты класса разделяют статическую переменную. Но когда память выделена для статической переменной? Это когда первый объект создается для класса? Или это происходит даже до того, как какой-либо экземпляр класса будет создан? Также переменная экземпляра выделяется памятью во время выполнения. Память для статической переменной выделяется во время выполнения или время компиляции?Когда память выделена для статической переменной в java?

+0

Это деталь реализации. Есть ли у вас конкретная реализация или гарантия, о которой вам интересно? –

+0

Это [окончательно не во время компиляции] (http://stackoverflow.com/questions/4343760/when-is-static-variable-loaded-in-java-runtime-or-compile-time). Это до создания первого объекта (вы можете получить доступ к статическому полю/методам без создания экземпляра этого класса). Моя интуиция подсказывает мне, что они распределяются по мере загрузки класса. – Turing85

+0

Это именно то, что вы хотите знать http://stackoverflow.com/questions/6569557/what-is-the-actual-memory-place-for-static-variables –

ответ

3

Когда класс загружен во время выполнения. Вы можете найти информацию here.

0

когда загрузчик классов загружает класс, Memeory для всех статических переменных будут выделены, и это будет сделано только один раз

Смежные вопросы