Junior
O que são as palavras-chave final e finalize em Java, e quais são as suas diferenças?
sobes.tech IA
Resposta da IA
Em Java, final e finalize são conceitos diferentes com propósitos distintos:
finalé uma palavra-chave usada para declarar:- Constantes (variáveis que não podem ser alteradas após a inicialização).
- Métodos que não podem ser sobrescritos em subclasses.
- Classes que não podem ser herdadas.
Exemplo:
final int x = 10; // x não pode ser alterado
final class MyClass {} // classe não pode ser herdada
final void myMethod() {} // método não pode ser sobrescrito
finalize()é um método da classeObject, chamado pelo coletor de lixo antes de remover o objeto da memória. Destina-se a liberar recursos, mas seu uso não é recomendado, pois sua chamada não é garantida e pode levar a comportamentos imprevisíveis.
Exemplo:
@Override
protected void finalize() throws Throwable {
// liberar recursos
super.finalize();
}
Diferenças:
finalé uma palavra-chave para controlar a modificação do código.finalizeé um método para limpeza antes da coleta de lixo, obsoleto e não recomendado.