Какова продолжительность жизни переменной в программе (на Java)? - PullRequest
1 голос
/ 08 октября 2009

Можете ли вы сказать мне, как долго переменная живет в программе (на Java). то есть переменные, объявленные внутри методов, переменные, используемые в параметрах, переменные STATIC, переменные, используемые для возврата из метода и т. д.

Спасибо.

Ответы [ 2 ]

3 голосов
/ 08 октября 2009
  1. Ссылки, объявленные внутри методов, выходят из области видимости при выходе из метода.
  2. Параметры, переданные методам, не будут подходить для GC до тех пор, пока на них больше не будет ссылок или они не выйдут за рамки.
  3. Статические ссылки связаны с классом и действуют до тех пор, пока класс загружен.
  4. Возвращенные ссылки не будут иметь права на сборщик мусора, пока на них больше не будет ссылок или они не выйдут за рамки.
2 голосов
/ 08 октября 2009

Объекты в Java гарантированно будут жить до тех пор, пока они будут ссылаться через транзитивное замыкание корневого набора . Это консервативное приближение живых объектов приложения¹.

Редактировать: Этот вопрос касается времени жизни объекта или области видимости переменной ? У нас смешанная терминология.

live Живой объект - это объект, на который снова будут ссылаться до завершения работы приложения.

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