Sobes.tech
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 classe Object, 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.