"Hola de nuevo. Hoy aprenderemos brevemente sobre el método finalizar (). La máquina virtual de Java llama al método finalizar () antes de destruir un objeto. El método se usa para desasignar recursos del sistema o realizar otras tareas de limpieza. De hecho, esto El método es exactamente lo contrario de un constructor en Java. Recordará que los constructores se usan para crear objetos".

"La clase Object tiene un método finalize (), lo que significa que todas las demás clases también lo tienen ( ya que todas las clases de Java se derivan de la clase Object ). Simplemente puede implementar su propio método finalize () en su clase".

"Aquí hay un ejemplo:"

Ejemplo:
class Cat
{
    String name;

    Cat(String name)
    {
        this.name = name;
    }

    protected void finalize() throws Throwable
    {
        System.out.println(name + " has been destroyed");
    }
}

"Eso tiene sentido, Ellie".

"Pero debe tener en cuenta que la máquina virtual de Java decide si llamar a este método . La mayoría de las veces, los objetos creados dentro de un método y declarados basura cuando el método se completa se destruyen inmediatamente sin ninguna llamada para finalizar (). Este método es más como una copia de seguridad que una solución confiable. La mejor opción es liberar todos los recursos del sistema (estableciendo las referencias a otros objetos en nulo) mientras el objeto aún está vivo. Más adelante les contaré más sobre las ventajas y los matices de este método. En este punto , solo necesitas entender dos cosas: existe tal método y (¡ sorpresa! ) no siempre se llama".