Это случиться так, что им чтение Effective Java
ПУНКТ 7: ИЗБЕЖАТЬ Финализаторы
Финализаторы непредсказуемы, часто опасно, и в целом не нужно. -Эффективная Java (страница 50)
другой из pdf.
Не соблазняйте методами System.gc и System.runFinalization. Они могут увеличить шансы финализаторов, выполненных, но они не гарантируют его. Единственными методами, которые утверждают, что окончательная доработка - это System.runFi- nalizersOnExit и его злой близнец, Runtime.runFinalizersOnExit. Эти методы являются смертельно ошибочными и устарели [ThreadStop].
на основе этого с использованием System.gc только увеличит шансы финализаторами получения казнены и, что важно использовать его не будет гарантировать, что он будет работать Garbage Collection, это только предлагая к JVM.
другой один.
Спецификация языка не только не гарантирует, что финальные команды будут выполнены незамедлительно; он не гарантирует, что они будут выполнены в ГЛАВЕ 2 СОЗДАНИЯ И УНИЧТОЖЕНИЯ ОБЪЕКТОВ 28 все. Вполне возможно, даже вероятно, что программа завершается без выполнения финализаторов на некоторых объектах, которые больше не являются достижимы
см это: http://stackoverflow.com/questions/2506488/when-is-the-finalize-method-called-in-java –
никакой гарантии на самом деле выполнить сбор мусора – Raghu