Czy pamięć obiektu jest zwolniona, gdy jawnie wywołujemy na niej finalize ()? [duplikować

To pytanie ma już odpowiedź tutaj:

Java i ręczne wykonanie finalizacji 3 odpowiedziKiedy w Javie wywoływana jest metoda finalize ()? 16 odpowiedzi

O ile rozumiem, finalizacja () i GC to dwa różne aspekty. GC używa metody finalize () do zwolnienia pamięci Object. Nie możemy określić, kiedy nastąpi GC (nawet jeśli jawnie wywołamy System.gc ()). Ale możemy jawnie wywołać finalize () na obiekcie.

Will the function be executed immediately(memory freed) or it waits till GC
occurs like System.gc() call?

Podobnie jak w dokumentacji, metoda finalizacji nigdy nie jest wywoływana więcej niż jeden raz przez maszynę wirtualną Java dla dowolnego obiektu.

Tak więc dzieje się, gdy najpierw wywołamy finalize (), a GC dzieje się później.

If object memory is not freed on explicit call to object.finalize() then would't 
it being called again in the GC process violate the calling only once rule? 

questionAnswers(3)

yourAnswerToTheQuestion