Каков срок службы переменной в программе (на Java)?

StackOverflow https://stackoverflow.com/questions/1534882

  •  20-09-2019
  •  | 
  •  

Вопрос

Можете ли вы сказать мне, как долго переменная живет в программе (на Java).т. е.переменные, объявленные внутри методов, переменные, используемые в параметрах, СТАТИЧЕСКИЕ переменные, переменные, используемые для возврата из метода, и т.д.

Спасибо.

Это было полезно?

Решение

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

Другие советы

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

Редактировать: Касается ли этот вопрос срок службы объекта, или переменная область видимости?У нас происходит некоторая смешанная терминология.

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top