Каков срок службы переменной в программе (на Java)?
-
20-09-2019 - |
Вопрос
Можете ли вы сказать мне, как долго переменная живет в программе (на Java).т. е.переменные, объявленные внутри методов, переменные, используемые в параметрах, СТАТИЧЕСКИЕ переменные, переменные, используемые для возврата из метода, и т.д.
Спасибо.
Решение
- Ссылки, объявленные внутри методов, выходят за пределы области видимости при завершении работы метода.
- Параметры, переданные методам, не будут иметь права на GC до тех пор, пока на них больше не будет ссылок или они не выйдут за пределы области видимости.
- Статические ссылки связаны с классом и действуют до тех пор, пока класс загружен.
- Возвращенные ссылки не будут иметь права на GC до тех пор, пока на них больше не будет ссылок или они не выйдут за пределы области видимости.
Другие советы
Объекты в Java гарантированно будут жить до тех пор, пока на них можно ссылаться через переходное замыкание из числа корневой набор.Это консервативное приближение к живым объектам приложения1.
Редактировать: Касается ли этот вопрос срок службы объекта, или переменная область видимости?У нас происходит некоторая смешанная терминология.
1 Живой объект - это объект, на который снова будут ссылаться перед завершением работы приложения.
Не связан с StackOverflow