2012-01-04 8 views
1

Можно создать дубликат:
Are static fields open for garbage collection?Java статические поля

Если объект имеет статическую ссылку в некотором классе, будет этот объект никогда не будет мусора? Также в какой момент будет инициализировано статическое поле?

+2

То же http://stackoverflow.com/questions/453023/are-static-fields-open-for-garbage-collection – Santosh

ответ

1

Ну, это было задано на SO несколько раз. Поскольку это два вопроса, давайте разложим его:

Статические переменные - это сбор мусора, когда ClassLoader, через который они загружаются, может быть выбран для сбора мусора. Проверьте этот пост: Are static fields open for garbage collection?

Что касается инициализации, то они инициализируются после того, как класс, удерживающий их, будет загружен. Проверить этот пост также: Why static fields are not initialized in time?

+1

Иногда мне кажется, что форум называется SO, потому что одни и те же вопросы задают SO много раз. ;) –

1

Статическое поле инициализируется при загрузке класса. Он доступен для GCed, когда его загрузчик классов разгружается.

+0

В какой момент он будет выгружен? – Rnet

+0

Когда в ClassLoader нет ссылки. Вы увидите это только для создаваемых ClassLoaders. –

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