На некоторых языках, таких как Python
, есть способы, по которым мы можем «удалить» объект из кучи явно. Как, например:Возможно ли удаление вручную объекта в Java?
s = "This is a Test"
del s
Теперь объект s
не может больше использоваться. Теперь, мой вопрос, можем ли мы сделать что-нибудь подобное в Java
? Да, я знаю, что это сбор мусора, и это огромное преимущество в большинстве ситуаций, но что, если я хочу вручную удалить объект? Кстати, делает del
в Python фактически удаляет объект или удаляет ссылочную переменную? Заранее благодарю за любую помощь!
Почему вы хотите вручную удалить объект? Как вы думаете, что бы достичь? – ajb
Это ничего не спасет и может ввести ошибки. Например, строковый литерал существует в кеше строк, и каждый раз вы получаете один и тот же объект. Если бы вы запускали код выше, чем один раз, и строка действительно была удалена, у вас была бы серьезная ошибка. –
Ваша предпосылка неверна. Вы не можете удалить объект в Python. 'del s' удаляет имя' s', но ничего не делает для объекта, на который он ссылался. Конечно, если это была единственная ссылка, это делает объект подходящим для сбора мусора, но это ничего особенного - 's = something else' имеет тот же самый эффект. – delnan