O método finalize() deve ser evitado na implementação de uma...
Comentários
Veja os comentários dos nossos alunos
Gabarito D
Você nunca deve usar o método FINALIZE(), porque ele pode causar muitos problemas e não há certeza se ele alguma vez será chamado antes de um programa terminar.
A intenção original de FINALIZE() era permitir que o coleto de lixo executasse a faxina de término em um objeto um pouco antes de reivindicar a memória ao objeto.
Agora, o que é considerado uma boa prática que qualquer classe que usa os recursos do sistema, como arquivos em disco, forneça um método que os programadores possam chamar para liberar os recursos quando eles não são mais necessários em um programa. EX: CLOSE() ou DISPOSE()
DEITEL, Paul; DEITEL Harvey. JAVA como Programar. 10.ed. [S.l.]: Pearson Prentice Hall, 2016.
Pág 265
Finalize()
- É chamado automaticamente antes que o coletor de lixo destrua o objeto
- DEVE ser evitado pois não é garantida e nem previsível.
- É possível inclusive que a JVM não os invoque nunca.
- Força a JVM a fazer trabalho extra e inibe um monte de otimizações, além de complicar bastante o gerenciamento de memória no Java.
- incentiva uma má prática de programação.
- A recomendação é não usá-lo nunca!
Clique para visualizar este comentário
Visualize os comentários desta questão clicando no botão abaixo