日期:2014-05-20  浏览次数:20723 次

finalize(),jdk文档,请求人将其译为中文,并提出意见。
inalize
protected   void   finalize()
                                  throws   Throwable
Called   by   the   garbage   collector   on   an   object   when   garbage   collection   determines   that   there   are   no   more   references   to   the   object.   A   subclass   overrides   the   finalize   method   to   dispose   of   system   resources   or   to   perform   other   cleanup.  
The   general   contract   of   finalize   is   that   it   is   invoked   if   and   when   the   JavaTM   virtual   machine   has   determined   that   there   is   no   longer   any   means   by   which   this   object   can   be   accessed   by   any   thread   that   has   not   yet   died,   except   as   a   result   of   an   action   taken   by   the   finalization   of   some   other   object   or   class   which   is   ready   to   be   finalized.   The   finalize   method   may   take   any   action,   including   making   this   object   available   again   to   other   threads;   the   usual   purpose   of   finalize,   however,   is   to   perform   cleanup   actions   before   the   object   is   irrevocably   discarded.   For   example,   the   finalize   method   for   an   object   that   represents   an   input/output   connection   might   perform   explicit   I/O   transactions   to   break   the   connection   before   the   object   is   permanently   discarded.  

The   finalize   method   of   class   Object   performs   no   special   action;   it   simply   returns   normally.   Subclasses   of   Object   may   override   this   definition.  

The   Java   programming   language   does   not   guarantee   which   thread   will   invoke   the   finalize   method   for   any   given   object.   It   is   guaranteed,   however,   that   the   thread   that   invokes   finalize   will   not   be   holding   any   user-visible   synchronization   locks   when   finalize   is   invoked.   If   an   uncaught   exception   is   thrown   by   the   finalize   method,   the   exception   is   ignored   and   finalization   of   that   object   terminates.  

After   the   finalize   method   has   been   invoked   for   an   object,   no   further   action   is   taken   until   the   Java   virtual   machine   has   again   determined   that   there   is   no   longer   any   means   by   which   this   object   can   be   accessed   by   any   thread   that   has   not   yet   died,   including   possible   actions   by   other   objects   or   classes   which   are   ready   to   be   finalized,   at   which   point   the   object   may   be   discarded.