¿Cómo funciona finalize () en java?

Entonces, recientemente descubrí el método de finalización en Java (no estoy seguro de por qué lo perdí antes, pero ahí está). Esta parece como si pudiera ser la respuesta a muchos de los problemas con los que estoy trabajando, pero primero quería obtener un poco más de información.

En línea, encontré este diagrama que ilustra el proceso de recolección de basura y finalizo:

Un par de preguntas

Esto tiene lugar en un hilo separado, ¿correcto? ¿Qué sucede si instancia un nuevo objeto durante la finalización? ¿Eso está permitido ¿Qué sucede si llamo a un método estático de finalizar? ¿Qué sucede si establezco una nueva referencia al objeto desde dentro de finalize?

Supongo que debería explicar por qué estoy interesado. Trabajo mucho con LWJGL, y parece que si pudiera usar finalizar para hacer que los objetos Java limpien automáticamente los recursos de OpenGL, podría hacer algunas cosas realmente buenas en términos de una API.

Respuestas a la pregunta(6)

Su respuesta a la pregunta