File APIs for Java Developers
Manipulate DOC, XLS, PPT, PDF and many others from your application.
http://aspose.com/file-tools
The moose likes Programmer Certification (SCJP/OCPJP) and the fly likes Regarding object finalization Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login
JavaRanch » Java Forums » Certification » Programmer Certification (SCJP/OCPJP)
Bookmark "Regarding object finalization" Watch "Regarding object finalization" New topic
Author

Regarding object finalization

surya.raaj prakash
Ranch Hand

Joined: Oct 30, 2009
Posts: 76
Hi Friends,
I could not understand some parts(i.e Bold Text) of the A Programmer's Guide to Java SCJP Certification(By Khalid A. Mughal Rolf W. Rasmussen) of Object Finalization it says,
A finalizer can, like any other method, catch and throw exceptions (see Section
6.7, p. 245). However, any exception thrown but not caught by a finalizer that is
called by the garbage collector is ignored, and the finalization of this object is terminated.
The finalizer is only called once on an object, regardless of whether any
exception is thrown during its execution. In case of finalization failure, the object
still remains eligible for disposal at the discretion of the garbage collector (unless
it has been resurrected, as explained in the next subsection). Since there is no
guarantee that the garbage collector will ever run, there is also no guarantee that
the finalizer will ever be called.


What is the reason?
Neha Daga
Ranch Hand

Joined: Oct 30, 2009
Posts: 504
read garbage collection from K & B.


SCJP 1.6 96%
Minhaj Mehmood
Ranch Hand

Joined: Jan 22, 2007
Posts: 400

finalize method is called by garbage collector. since its no guarantee that garbage collector will ever run therefore there is no guarantee that the finalize method will run too.

SCJP6 96% | SCWCD5 81% | SCDJWS5 79%
Ankit Garg
Sheriff

Joined: Aug 03, 2008
Posts: 9293
    
  17

If the program exits before garbage collector gets a chance to run, so there's no assurance that the finalize method will be called. If an object is eligible for GC, but the program exits before garbage collector runs, then the finalize method won't be called on that object...


SCJP 6 | SCWCD 5 | Javaranch SCJP FAQ | SCWCD Links
Raju Champaklal
Ranch Hand

Joined: Dec 10, 2009
Posts: 521
so i think it means the finalize method only runs when the garbage collector has started and the object is eligible to get gced....


scjp 1.6 91%, preparing for scmad
"Time to get MAD now.. we will get even later"....by someone unknown
Ankit Garg
Sheriff

Joined: Aug 03, 2008
Posts: 9293
    
  17

Raju Champaklal wrote:so i think it means the finalize method only runs when the garbage collector has started and the object is eligible to get gced....

finalize method only runs when an object is actually garbage collected, if garbage collector runs and doesn't garbage collect the object, then finalize method doesn't run...
Raju Champaklal
Ranch Hand

Joined: Dec 10, 2009
Posts: 521
you mean that if an object is eligible for gc....and if the garbage collector has started....and if the object is going to get gced...the finalize method will run before then object is gced.....

one question....if the garbage collector has started....is it sure that the objects that are eligible for gc will get gced?

 
I agree. Here's the link: http://aspose.com/file-tools
 
subject: Regarding object finalization