Problemas con el método de finalización de clases de objetos en Java
finalize() tiene los siguientes problemas:
1.
Incluso si finalize() se anula y su programa no hace referencia a él, el GC no lo reclamará inmediatamente.
Esto se debe a que después del GC, la referencia de JavaVM todavía existe para ejecutar el método finalize().
2.
No hay garantía de que finalize() se ejecute después de GC.
3.
El orden en el que se ejecuta finalize() es incierto.
Un ejemplo extremo
java.lang.System.gc();
java.lang.System.runFinalization();
java.lang.System.gc(); Incluso esto no garantiza que el objeto se reciclará por completo.
Por lo tanto, asegúrese de no anular finalize() y esperar que el objeto se recicle, lo que puede causar fácilmente pérdidas de memoria. Porque hacerlo no logrará los resultados que desea.