Sobes.tech
Junior — Middle

¿Qué sucede cuando se llama al método finalize en un objeto en Java y qué recursos puede liberar?

sobes.tech AI

Respuesta de la IA

En Java, el método finalize() es llamado por el recolector de basura antes de eliminar un objeto de la memoria. Este método está destinado a liberar recursos no gestionados que no se liberan automáticamente, por ejemplo:

  • Cierre de descriptores de archivos
  • Liberación de conexiones de red
  • Limpieza de recursos nativos

Sin embargo, no se recomienda usar finalize(), ya que su llamada no está garantizada y puede causar retrasos en la liberación de recursos. Los enfoques modernos sugieren usar try-with-resources o liberar recursos explícitamente.

Ejemplo:

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