Junior — Middle
Como é mais frequentemente implementada a finalização de objetos na linguagem Java?
sobes.tech IA
Resposta da IA
Em Java, para gerir o encerramento de objetos, geralmente usa-se o método finalize(), que é chamado pelo coletor de lixo antes de remover o objeto. No entanto, a partir do Java 9, esse método é considerado obsoleto e não é recomendado devido à imprevisibilidade do momento de sua chamada e problemas de desempenho.
A abordagem moderna é usar a interface AutoCloseable e a construção try-with-resources para liberar recursos de forma explícita:
class Resource implements AutoCloseable {
public void close() {
// liberar recursos
System.out.println("Recurso fechado");
}
}
try (Resource res = new Resource()) {
// trabalhar com o recurso
}
// aqui, res.close() é chamado automaticamente
Assim, o encerramento de objetos, especialmente aqueles que gerenciam recursos, é feito por meio de fechamento explícito e não por finalize().