Sobes.tech
Junior

¿Qué son las palabras clave final y finalize en Java, y en qué se diferencian?

sobes.tech AI

Respuesta de la IA

En Java, final y finalize son conceptos diferentes con propósitos distintos:

  • final es una palabra clave que se usa para declarar:
    • Constantes (variables que no se pueden cambiar después de la inicialización).
    • Métodos que no se pueden sobrescribir en subclases.
    • Clases que no se pueden heredar.

Ejemplo:

final int x = 10; // x no se puede cambiar
final class MyClass {} // clase no se puede heredar
final void myMethod() {} // método no se puede sobrescribir
  • finalize() es un método de la clase Object, que se llama por el recolector de basura antes de eliminar el objeto de la memoria. Está destinado a liberar recursos, pero su uso no se recomienda, ya que no se garantiza su llamada y puede conducir a comportamientos impredecibles.

Ejemplo:

@Override
protected void finalize() throws Throwable {
    // liberar recursos
    super.finalize();
}

Diferencias:

  • final es una palabra clave para controlar la modificación del código.
  • finalize es un método para limpiar antes de la recolección de basura, obsoleto y no recomendado para su uso.