Por que evitar finalizers? Li isso no effective java 2

Estava lendo o livro effective java 2 e me deparei com esse item do capítulo1.

“Item 7: Avoid finalizers”

“Finalizers are unpredictable, often dangerous, and generally unnecessary.”

O finalizer que ele se refere é o método finalize da classe Object que é chamado no momento em que um objeto é limpo da memória pelo garbage collector.
Como não é possível determinar quando uma classe é efetivamente limpa da memória, o seu uso não é recomendado.

O finaly do try … catch … finaly é altamente recomendado principalmente quando alocamos recursos que devem explicitamente serem liberados como conexões de banco de dados, arquivos, sockets, etc…

Agora que eu re-li eu entendi melhor.

É que eu nunca tinha usado esse finalize() do java.

[quote=SanjuanRJ]
É que eu nunca tinha usado esse finalize() do java. [/quote]

Se você conhecer alguém que já usou, considere-se um dos poucos (in)felizes do mundo :lol: