Как статическая переменная обрабатывается gc - PullRequest
3 голосов
/ 03 июня 2010

Как статические переменные обрабатываются сборщиком мусора и где им выделяется память? в куче или стеке (как переменные-члены) Пожалуйста, уточните это для меня.

1 Ответ

7 голосов
/ 03 июня 2010

Статические переменные имеют право на сборку мусора только тогда, когда сам класс является сборщиком мусора, а классы имеют право на сборку мусора, только если загрузчик классов, который их загрузил, является сборщиком мусора.

См. JLS § 12,7 :

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

Статические поля размещаются в куче.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...