Если myObject
содержит только память (скажем, большой внутренний массив), то достаточно установить эту ссылку на null
.
Если, с другой стороны, он содержит какой-то другой тип ресурса, который вы выделили (Closeable
, Thread
, ExecutorService
и т. Д.), Вы должны позаботиться о правильном отключении этих ресурсов. 1008 *
Несмотря на то, что некоторые из них могут иметь метод finalize
, они могут быть вызваны слишком поздно (или даже никогда), чтобы ваша система имела желаемый эффект.
Это очень распространенная ошибка для тех, кто переключается с C ++ на Java, и я виноват в том, что здесь обвиняется. В моем первом реальном Java-проекте я периодически заканчивал работу с дескриптором файла, потому что я не вызывал close
после того, как закончил с ними. Излишне говорить, что с кучей 512 МБ GC никогда не почувствует необходимости начинать завершать мои объекты ввода-вывода, пока не стало слишком поздно.