publicclassFinalizeEscapeGC{publicstaticFinalizeEscapeGCSAVE_HOOK=null;publicvoidisAlive(){System.out.println("Yes, i am still alive :)");}@Overrideprotectedvoidfinalize()throwsThrowable{super.finalize();System.out.println("finalize method executed!");FinalizeEscapeGC.SAVE_HOOK=this;}publicstaticvoidmain(String[]args)throwsThrowable{SAVE_HOOK=newFinalizeEscapeGC();SAVE_HOOK=null;System.gc();Thread.sleep(500);if(SAVE_HOOK!=null){SAVE_HOOK.isAlive();}else{System.out.println("no, i am dead :(");}SAVE_HOOK=null;System.gc();Thread.sleep(500);if(SAVE_HOOK!=null){SAVE_HOOK.isAlive();}else{System.out.println("no, i am dead :(");}}}