JavaTM 2 Platform
Standard Ed. 5.0

java.lang
Ŭ·¡½º Object

java.lang.Object

public class Object

Object Ŭ·¡½º´Â Ŭ·¡½º °èÃþ ·çÆ®ÀÔ´Ï´Ù. ¸ðµç Ŭ·¡½º´Â ½´ÆÛ Å¬·¡½º·Î¼­ Object¸¦ °¡Áý´Ï´Ù. ¹è¿­À» Æ÷ÇÔÇÑ ¸ðµç °´Ã¼´Â ÀÌ Å¬·¡½ºÀÇ ¸Þ¼­µå¸¦ ±¸ÇöÇÕ´Ï´Ù.

µµÀÔµÈ ¹öÀü :
JDK1. 0
°ü·Ã Ç׸ñ:
Class

»ý¼ºÀÚ °³¿ä
Object ()
           
 
¸Þ¼­µå °³¿ä
protected  Object clone ()
          ÀÌ °´Ã¼ÀÇ º¹»çº»À» ÀÛ¼ºÇØ ¸®ÅÏÇÕ´Ï´Ù.
 boolean equals (Object  obj)
          ÀÌ °´Ã¼¿Í ´Ù¸¥ °´Ã¼°¡ µ¿ÀÏÇÑÁö ¾î¶²Áö¸¦ ³ªÅ¸³À´Ï´Ù.
protected  void finalize ()
          ÀÌ °´Ã¼¿¡ÀÇ ÂüÁ¶´Â ÀÌÁ¦ ¾øÀ¸¸é °¡ºñÁö Ä÷º¼Ç¿¡ ÀÇÇØ ÆǴܵǾúÀ» ¶§¿¡ °¡ºñÁö Ä÷ºÅÍ¿¡ ÀÇÇØ È£ÃâÇÕ´Ï´Ù.
 Class <? extends Object > getClass ()
          °´Ã¼ÀÇ ½ÇÇà½Ã Ŭ·¡½º¸¦ ¸®ÅÏÇÕ´Ï´Ù.
 int hashCode ()
          °´Ã¼ÀÇ Çؽà Äڵ尪À» ¸®ÅÏÇÕ´Ï´Ù.
 void notify ()
          ÀÌ °´Ã¼ÀÇ ¸ð´ÏÅÍ·Î ´ë±âÁßÀÇ thread¸¦ 1°³ Àç°³ÇÕ´Ï´Ù.
 void notifyAll ()
          ÀÌ °´Ã¼ÀÇ ¸ð´ÏÅÍ·Î ´ë±âÁßÀÇ ¸ðµç thread¸¦ Àç°³ÇÕ´Ï´Ù.
 String toString ()
          °´Ã¼ÀÇ Ä³¸¯ÅÍ ¶óÀΠǥÇöÀ» ¸®ÅÏÇÕ´Ï´Ù.
 void wait ()
          ´Ù¸¥ thread°¡ ÀÌ °´Ã¼ÀÇ notify() ¸Þ¼­µå ¶Ç´Â notifyAll() ¸Þ¼­µå¸¦ È£ÃâÇÒ ¶§±îÁö, ÇöÀçÀÇ thread¸¦ ´ë±â½Ãŵ´Ï´Ù.
 void wait (long timeout)
          ´Ù¸¥ thread°¡ ÀÌ °´Ã¼ÀÇ notify() ¸Þ¼­µå ¶Ç´Â notifyAll() ¸Þ¼­µå¸¦ È£ÃâÇÏ´ÂÁö, ÁöÁ¤µÈ ½Ã°£ÀÌ °æ°úÇÒ ¶§±îÁö, ÇöÀçÀÇ thread¸¦ ´ë±â½Ãŵ´Ï´Ù.
 void wait (long timeout, int nanos)
          ´Ù¸¥ thread°¡ ÀÌ °´Ã¼ÀÇ notify() ¸Þ¼­µå ¶Ç´Â notifyAll() ¸Þ¼­µå¸¦ È£ÃâÇÏ´ÂÁö, ´Ù¸¥ thread°¡ ÇöÀçÀÇ thread¿¡ ÀÎÅÍ·´Æ®¸¦ °É°Å³ª ÁöÁ¤µÈ ¾çÀÇ ½Ç½Ã°£ÀÌ °æ°úÇÒ ¶§±îÁö, ÇöÀçÀÇ thread¸¦ ´ë±â½Ãŵ´Ï´Ù.
 

»ý¼ºÀÚ »ó¼¼

Object

public Object()
¸Þ¼­µåÀÇ »ó¼¼

getClass

public final Class <?  extends Object > getClass()
°´Ã¼ÀÇ ½ÇÇà½Ã Ŭ·¡½º¸¦ ¸®ÅÏÇÕ´Ï´Ù. ÀÌ Class °´Ã¼´Â ³ªÅ¸³»Áø Ŭ·¡½ºÀÇ static synchronized ¸Þ¼­µå¿¡ ÀÇÇØ ¶ô µÇ´Â °´Ã¼ÀÔ´Ï´Ù.

¹Ýȯ°ª:
°´Ã¼ÀÇ ½ÇÇà½Ã Ŭ·¡½º¸¦ ³ªÅ¸³»´Â java.lang.Class °´Ã¼. °á°ú´Â Class<? extends X> ÇüÀÌ µÈ´Ù. ¿©±â¼­, X´Â getClass°¡ È£ÃâµÇ´Â static ÇüÀÇ ÀÌ·¹ÀÌÀð

hashCode

public int hashCode()
°´Ã¼ÀÇ Çؽà Äڵ尪À» ¸®ÅÏÇÕ´Ï´Ù. ÀÌ ¸Þ¼­µå´Â java.util.Hashtable¿¡ ÀÇÇØ Á¦°øµÇ´Â °Í °°Àº Çؽà Å×À̺í·Î »ç¿ëÇϱâ À§Çؼ­ ÁغñµÇ¾î ÀÖ½À´Ï´Ù.

hashCode ¸Þ¼­µåÀÇ ÀϹÝÀûÀÎ ±ÔÄ¢À» ´ÙÀ½¿¡ ³ªÅ¸³À´Ï´Ù.

ÇÒ ¼ö ÀÖ´Â ÇÑ, Object Ŭ·¡½º¿¡¼­ Á¤ÀǵǴ hashCode ¸Þ¼­µå´Â ´Ù¸¥ °´Ã¼¿¡ ´ëÇؼ­´Â ´Ù¸¥ Á¤¼ö°ªÀ» ¸®ÅÏÇÕ´Ï´Ù. º¸Åë, ÀÌ°ÍÀº °´Ã¼ÀÇ ³»ºÎ ÁÖ¼Ò¸¦ Á¤¼ö°ª ·Î º¯È¯ÇÏ´Â ÇüÅ·Π±¸ÇöµË´Ï´Ù¸¸, ±×·¯ÇÑ ±¸Çö Å×Å©´ÐÀº JavaTM ÇÁ·Î±×·¥ ¾ð¾î¿¡¼­´Â ºÒÇÊ¿äÇÕ´Ï´Ù.

¹Ýȯ°ª:
ÀÌ °´Ã¼ÀÇ Çؽà Äڵ尪
°ü·Ã Ç׸ñ:
equals(java.lang.Object), Hashtable

equals

public boolean equals(Object  obj)
ÀÌ °´Ã¼¿Í ´Ù¸¥ °´Ã¼°¡ µ¿ÀÏÇÑÁö ¾î¶²Áö¸¦ ³ªÅ¸³À´Ï´Ù.

equals ¸Þ¼­µå´Â null ÀÌ¿ÜÀÇ °´Ã¼ ÂüÁ¶¿¡¼­ÀÇ µ¿Ä¡ °ü°è¸¦ ±¸ÇöÇÕ´Ï´Ù.

Object Ŭ·¡½ºÀÇ equals ¸Þ¼­µå´Â °¡Àå ºñ±³Çϱ⠽¬¿î °´Ã¼ÀÇ µ¿Ä¡ °ü°è¸¦ ±¸ÇöÇÕ´Ï´Ù. Áï, null ÀÌ¿ÜÀÇ ÂüÁ¶Ä¡ x¿Í y¿¡ ´ëÇØ, ÀÌ ¸Þ¼­µå´Â x¿Í y°¡ °°Àº °´Ã¼¸¦ ÂüÁ¶ÇÏ´Â (x == y°¡ true) °æ¿ì¿¡¸¸ true¸¦ ¸®ÅÏÇÕ´Ï´Ù.

º¸Åë, ÀÌ ¸Þ¼­µå¸¦ ¿À¹ö¶óÀ̵å(override) ÇÏ´Â °æ¿ì´Â hashCode ¸Þ¼­µå¸¦ Ç×»ó ¿À¹ö¶óÀ̵å(override) ÇØ, ¡¸µî°¡ÀÎ °´Ã¼´Â µî°¡ÀÎ Çؽà Äڵ带 º¸°ü À¯ÁöÇÒ ÇÊ¿ä°¡ ÀÖ´Ù¡¹¶ó°í ÇÏ´Â hashCode ¸Þ¼­µåÀÇ ¹ü¿ë ±Ô¾à¿¡ µû¸¦ ÇÊ¿ä°¡ ÀÖ´Â °Í¿¡ À¯ÀÇÇØ ÁÖ¼¼¿ä.

ÆĶó¹ÌÅÍ:
obj - ºñ±³ ´ë»óÀÇ ÂüÁ¶ °´Ã¼
¹Ýȯ°ª:
obj Àμö·Î ÁöÁ¤µÈ °´Ã¼¿Í ÀÌ °´Ã¼°¡ µ¿ÀÏÇÑ °æ¿ì´Â true, ±×·¸Áö ¾ÊÀº °æ¿ì´Â false
°ü·Ã Ç׸ñ:
hashCode(), Hashtable

clone

protected Object  clone()
                throws CloneNotSupportedException 
ÀÌ °´Ã¼ÀÇ º¹»çº»À» ÀÛ¼ºÇØ ¸®ÅÏÇÕ´Ï´Ù. ¡¸Ä«ÇÇ¡¹ÀÇ Á¤È®ÇÑ ÀÌÀ¯´Â °´Ã¼ÀÇ Å¬·¡½º¿¡ ÀÇÇØ ´Ù¸¨´Ï´Ù. ÀϹÝÀûÀ¸·Î´Â ÀÓÀÇÀÇ °´Ã¼ x¿¡ ´ëÇØ, ´ÙÀ½ÀÇ ½Ä

 x.clone() ! = x
ÇÏÁö¸¸ true À̸ç, ´ÙÀ½ÀÇ ½Ä

 x.clone(). getClass() == x.getClass()
µµ true ÀÎ °ÍÀÔ´Ï´Ù¸¸, À̰͵鵵 Àý´ëÀûÀÎ ¿ä°ÇÀÌ ¾Æ´Õ´Ï´Ù. ¶Ç ´ÙÀ½ÀÇ ½Ä

 x.clone(). equals(x)
µµ º¸Åë true°¡ µË´Ï´Ù¸¸, À̰͵µ Àý´ëÀûÀÎ ¿ä°ÇÀÌ ¾Æ´Õ´Ï´Ù.

º¸Åë, super.clone¸¦ È£ÃâÇÏ´Â °ÍÀ¸·Î ¸®ÅÏµÈ °´Ã¼¸¦ ÃëµæÇÒ ¼ö ÀÖ½À´Ï´Ù. Ŭ·¡½º ¹× ±× ½´ÆÛ Å¬·¡½º ¸ðµç °Í (Object¸¦ Á¦¿ÜÇÑ´Ù)ÀÌ ÀÌ ±ÔÄ¢¿¡ µû¸£´Â °æ¿ì, x.clone(). getClass() == x.getClass()°¡ ¼º¸³ÇÕ´Ï´Ù.

º¸Åë, ÀÌ ¸Þ¼­µå¿¡ ÀÇÇØ ¸®ÅÏµÈ °´Ã¼´Â ÀÌ °´Ã¼ (º¹Á¦µÇ°í ÀÖ´Ù)·ÎºÎÅÍ µ¶¸³ÇÏ°í ÀÖÀ» ÇÊ¿ä°¡ ÀÖ½À´Ï´Ù. ÀÌ µ¶¸³¼ºÀ» ´Þ¼ºÇϱâ À§ÇØ, super.clone°¡ µ¹·ÁÁÖ´Â °´Ã¼ÀÇ Çʵ带 1°³ ÀÌ»ó (°´Ã¼°¡ µ¹·ÁÁÖ±â Àü¿¡) º¯°æÇÏ´Â °ÍÀÌ ÇÊ¿äÇÏ°Ô µÇ´Â °æ¿ì°¡ ÀÖ½À´Ï´Ù. ÀÌ°ÍÀº º¸Åë, º¹Á¦ÇÏ´Â °´Ã¼ÀÇ ³»ºÎ ¡¸½ÉÃþ ±¸Á¶¡¹¸¦ ±¸¼ºÇÏ´Â °¡º¯ °´Ã¼ÀÇ Ä«ÇÇ ¹× ÀÌ·¯ÇÑ °´Ã¼¿¡ÀÇ ÂüÁ¶¸¦ Ä«ÇÇ¿¡ÀÇ ÂüÁ¶¿¡ ¿Å°Ü³õ´Â °ÍÀ»ÀǹÌÇÕ´Ï´Ù. Ŭ·¡½º¿¡ ¿ø½ÃÀû ÇÊµå ¶Ç´Â ºÒº¯ °´Ã¼¿¡ÀÇ ÂüÁ¶¸¸ÀÌ Æ÷ÇԵǴ °æ¿ì, º¸Åë, super.clone¿¡ ÀÇÇØ ¸®ÅÏµÈ °´Ã¼³»ÀÇ Çʵ带 º¯°æÇÒ ÇÊ¿ä´Â ¾ø½À´Ï´Ù.

Object Ŭ·¡½ºÀÇ clone ¸Þ¼­µå´Â ƯÁ¤ÀÇ º¹Á¦ 󸮸¦ ½ÇÇàÇÕ´Ï´Ù. ¿ì¼±, ÀÌ °´Ã¼ÀÇ Å¬·¡½º°¡ Cloneable ÀÎÅÍÆäÀ̽º¸¦ ±¸ÇöÇÏ°í ÀÖÁö ¾Ê´Â °æ¿ì´Â CloneNotSupportedExceptionÀÌ ¹ß»ý µË´Ï´Ù. ¹è¿­Àº ¸ðµÎ, ÀÎÅÍÆäÀ̽º Cloneable¸¦ ±¸ÇöÇÏ°í ÀÖ´Â °ÍÀ̶ó°í º¸¿©Áö´Â °Í¿¡ ÁÖÀÇÇØ ÁÖ¼¼¿ä. ±¸ÇöÇÏ°í ÀÖÁö ¾Ê´Â °æ¿ì, ÀÌ ¸Þ¼­µå´Â ÀÌ °´Ã¼ÀÇ Å¬·¡½ºÀÇ »õ·Î¿î ÀνºÅϽº¸¦ »ý¼ºÇØ, ±× Çʵ带 ¸ðµÎ, ÀÌ °´Ã¼ÀÇ ´ëÀÀÇÏ´Â °¢ ÇʵåÀÇ ³»¿ëÀ¸·Î ÃʱâÈ­ÇÕ´Ï´Ù. ÀÌ°ÍÀº ´ëÀÔ°ú °°¾Æ, ÇʵåÀÇ ³»¿ë ÀÚ½ÅÀÌ º¹Á¦µÇ´Â °ÍÀº ¾Æ´Õ´Ï´Ù. Áï ÀÌ ¸Þ¼­µå´Â °´Ã¼ÀÇ ¡¸»þ·ÎÄÚÇÇ¡¹¸¦ »ý¼ºÇÕ´Ï´Ù¸¸, ¡¸µö Ä«ÇÇ¡¹´Â »ý¼ºÇÏÁö ¾Ê½À´Ï´Ù.

Ŭ·¡½º Object ÀÚü´Â Cloneable ÀÎÅÍÆäÀ̽º¸¦ ±¸ÇöÇÏÁö ¾Ê±â ¶§¹®¿¡ Ŭ·¡½º°¡ Object ÀÎ clone ¸Þ¼­µå¸¦ È£ÃâÇϸé, ½ÇÇà½Ã¿¡ ¿¹¿Ü°¡ ¹ß»ý µË´Ï´Ù.

¹Ýȯ°ª:
ÀÌ ÀνºÅϽºÀÇ º¹Á¦
¿¹¿Ü:
CloneNotSupportedException - °´Ã¼ÀÇ Å¬·¡½º°¡ CloneableÀÎÅÍÆäÀ̽º¸¦ Áö¿ø ÇÏ°í ÀÖÁö ¾Ê´Â °æ¿ì. clone ¸Þ¼­µå¸¦ ¿À¹ö¶óÀ̵å(override) ÇÑ ¼­ºê Ŭ·¡½ºµµ, ÀνºÅϽº¸¦ º¹Á¦ÇÒ ¼ö ¾ø´Â °ÍÀ» ³ªÅ¸³»±â À§Çؼ­ ÀÌ ¿¹¿Ü¸¦ Throw ÇÏ´Â ÀÏÀÌ ÀÖ´Â
°ü·Ã Ç׸ñ:
Cloneable

toString

public String  toString()
°´Ã¼ÀÇ Ä³¸¯ÅÍ ¶óÀΠǥÇöÀ» ¸®ÅÏÇÕ´Ï´Ù. º¸Åë, toString ¸Þ¼­µå´Â ÀÌ °´Ã¼¸¦ ¡¸ÅؽºÆ®·Î Ç¥ÇöÇÑ´Ù¡¹Ä³¸¯ÅÍ ¶óÀÎÀ» ¸®ÅÏÇÕ´Ï´Ù. ÀÌ °á°ú´Â Àΰ£ÀÌ ÀÐÀ» ¼ö ÀÖ´Â °£°áÇÏ°í À¯ÀÍÇÑ Á¤º¸¿©¾ß ÇÕ´Ï´Ù. ¸ðµç ¼­ºê Ŭ·¡½º¿¡¼­ ÀÌ ¸Þ¼­µå¸¦ ¿À¹ö¶óÀ̵å(override) ÇÏ´Â °ÍÀ» ÃßõÇÕ´Ï´Ù.

Object Ŭ·¡½ºÀÇ toString ¸Þ¼­µå´Â °´Ã¼ÀÇ ÆÄ»ý¿øÀÇ Å¬·¡½º¸í, @ ºÎÈ£ (@) ¹× °´Ã¼ÀÇ Çؽà ÄÚµåÀÇ ºÎÈ£ ¾øÀ½ 16 ÁøÇ¥ÇöÀ¸·ÎºÎÅÍ ±¸¼ºµÇ´Â ij¸¯ÅÍ ¶óÀÎÀ» ¸®ÅÏÇÕ´Ï´Ù. Áï, ÀÌ ¸Þ¼­µå´Â ´ÙÀ½ÀÇ °ª°ú µ¿ÀÏÇÑ Ä³¸¯ÅÍ ¶óÀÎÀ» ¸®ÅÏÇÕ´Ï´Ù.


 getClass(). getName() + '@' + Integer.toHexString(hashCode())
 

¹Ýȯ°ª:
ÀÌ °´Ã¼ÀÇ Ä³¸¯ÅÍ ¶óÀΠǥÇö

notify

public final void notify()
ÀÌ °´Ã¼ÀÇ ¸ð´ÏÅÍ·Î ´ë±âÁßÀÇ thread¸¦ 1°³ Àç°³ÇÕ´Ï´Ù. ÀÌ °´Ã¼·Î º¹¼öÀÇ thread°¡ ´ë±âÁßÀÇ °æ¿ì´Â ±× ÁßÀÇ 1°³¸¦ Àç°³ÇÕ´Ï´Ù. ÀÌ ¼±ÅÃÀº ÀÓÀÇ·Î ±¸Çö¿¡ µû¶ó¼­ ´Ù¸¨´Ï´Ù. thread´Â wait ¸Þ¼­µå¸¦ 1°³ È£ÃâÇØ, °´Ã¼ÀÇ ¸ð´ÏÅÍ·Î ´ë±âÇÕ´Ï´Ù.

Àç°³µÈ threadÀÇ Ã³¸®´Â ÇöÀçÀÇ thread°¡ ÀÌ °´Ã¼ÀÇ ¶ôÀ» ÇØÁ¦ÇÒ ¶§±îÁö´Â ÁøÇàµÉ ¼ö°¡ ¾ø½À´Ï´Ù. Àç°³µÈ thread´Â ´Ù¸¥ thread¿Í °°ÀÌ, ÀÌ °´Ã¼¿Í µ¿±â Çϵµ·Ï Àû±ØÀûÀ¸·Î °Ü·ì´Ï´Ù. ¿¹¸¦ µé¾îÀÌ °´Ã¼¸¦ Àá±×´Â ´ÙÀ½ÀÇ thread°¡ µÇ·Á°í ÇÏ´Â °æ¿ì¿¡¼­µµ, Àç°³µÈ threadÀÇ Ãë±ÞÀº ´Ù¸¥ threadº¸´Ù ¿ì¼¼ÇÏÁöµµ ¿­¼¼ÇÏÁöµµ ¾Ê½À´Ï´Ù.

ÀÌ ¸Þ¼­µå¸¦ È£ÃâÇÏ´Â °ÍÀº ÀÌ °´Ã¼ÀÇ ¸ð´ÏÅ͸¦ ¼ÒÀ¯ÇÏ´Â thread°¡ ¾Æ´Ï¸é ¾ÈµË´Ï´Ù. thread°¡ °´Ã¼ÀÇ ¸ð´ÏÅÍÀÇ ¿À³Ê°¡ µÇ´Â ¹æ¹ýÀº ´ÙÀ½ÀÇ 3 ¹æ¹ýÀÌ ÀÖ½À´Ï´Ù.

°´Ã¼ÀÇ ¸ð´ÏÅ͸¦ ¼ÒÀ¯ÇÒ ¼ö ÀÖ´Â thread´Â 1ȸ¿¡ 1°³ »ÓÀÔ´Ï´Ù.

¿¹¿Ü:
IllegalMonitorStateException - ÇöÀçÀÇ thread°¡ ÀÌ °´Ã¼ÀÇ ¸ð´ÏÅ͸¦ ¼ÒÀ¯ÇÏ°í ÀÖÁö ¾Ê´Â °æ¿ì
°ü·Ã Ç׸ñ:
notifyAll(), wait()

notifyAll

public final void notifyAll()
ÀÌ °´Ã¼ÀÇ ¸ð´ÏÅÍ·Î ´ë±âÁßÀÇ ¸ðµç thread¸¦ Àç°³ÇÕ´Ï´Ù. thread´Â wait ¸Þ¼­µå¸¦ È£ÃâÇϸé, °´Ã¼ÀÇ ¸ð´ÏÅÍ·Î ´ë±âÇÕ´Ï´Ù.

Àç°³µÈ threadÀÇ Ã³¸®´Â ÇöÀçÀÇ thread°¡ ÀÌ °´Ã¼ÀÇ ¶ôÀ» ÇØÁ¦ÇÒ ¶§±îÁö´Â ÁøÇàµÉ ¼ö°¡ ¾ø½À´Ï´Ù. Àç°³µÈ thread´Â ´Ù¸¥ thread¿Í °°ÀÌ, ÀÌ °´Ã¼¿Í µ¿±â Çϵµ·Ï Àû±ØÀûÀ¸·Î °Ü·ì´Ï´Ù. ¿¹¸¦ µé¾îÀÌ °´Ã¼¸¦ Àá±×´Â ´ÙÀ½ÀÇ thread°¡ µÇ·Á°í ÇÏ´Â °æ¿ì¿¡¼­µµ, Àç°³µÈ threadÀÇ Ãë±ÞÀº ´Ù¸¥ threadº¸´Ù ¿ì¼¼ÇÏÁöµµ ¿­¼¼ÇÏÁöµµ ¾Ê½À´Ï´Ù.

ÀÌ ¸Þ¼­µå¸¦ È£ÃâÇÏ´Â °ÍÀº ÀÌ °´Ã¼ÀÇ ¸ð´ÏÅ͸¦ ¼ÒÀ¯ÇÏ´Â thread »Ó¸¸ÀÌ ¾Æ´Ï¸é ¾ÈµË´Ï´Ù. thread°¡ °´Ã¼ÀÇ ¸ð´ÏÅÍÀÇ ¿À³Ê°¡ µÇ´Â ¹æ¹ý¿¡ ´ëÇؼ­´Â notify ¸Þ¼­µå¸¦ ÂüÁ¶ÇϽʽÿÀ.

¿¹¿Ü:
IllegalMonitorStateException - ÇöÀçÀÇ thread°¡ ÀÌ °´Ã¼ÀÇ ¸ð´ÏÅ͸¦ ¼ÒÀ¯ÇÏ°í ÀÖÁö ¾Ê´Â °æ¿ì
°ü·Ã Ç׸ñ:
notify(), wait()

wait

public final void wait(long timeout)
                throws InterruptedException 
´Ù¸¥ thread°¡ ÀÌ °´Ã¼ÀÇ notify() ¸Þ¼­µå ¶Ç´Â notifyAll() ¸Þ¼­µå¸¦ È£ÃâÇÏ´ÂÁö, ÁöÁ¤µÈ ½Ã°£ÀÌ °æ°úÇÒ ¶§±îÁö, ÇöÀçÀÇ thread¸¦ ´ë±â½Ãŵ´Ï´Ù.

ÇöÀçÀÇ thread´Â ÀÌ °´Ã¼ÀÇ ¸ð´ÏÅÍÀÇ ¿À³Ê°¡ ¾Æ´Ï¸é ¾ÈµË´Ï´Ù.

ÀÌ ¸Þ¼­µå´Â ÇöÀçÀÇ thread (¿©±â¿¡¼­´Â T ·Î ÇÑ´Ù)¸¦ ÀÌ °´Ã¼ÀÇ ´ë±â ¼¼Æ®¿¡ ³Ö°í ³ª¼­, ÀÌ °´Ã¼¿¡ ´ëÇÑ µ¿±â ¿ä±¸¸¦ ¸ðµÎ Æó±âÇÕ´Ï´Ù. thread T´Â threadÀÇ ½ºÄÉÁÙ¸µ¿¡ ´ëÇؼ­´Â ¹«È¿·Î ¿©°ÜÁ® ¾Æ·¡ÀÇ 4°³ÀÇ ¾î¶² °ÍÀΰ¡°¡ ¹ß»ýÇÒ ¶§±îÁö ´ë±âÇÕ´Ï´Ù.

±× ÈÄ thread T´Â ÀÌ °´Ã¼ÀÇ ´ë±â ¼¼Æ®·ÎºÎÅÍ »èÁ¦µÇ¾î threadÀÇ ½ºÄÉÁÙ¸µÀÌ ´Ù½Ã °¡´ÉÇÏ°Ô µË´Ï´Ù. ÀÌÈÄ, ÀÌ thread´Â º¸Åë ´ë·Î °´Ã¼¿Í µ¿±âÈ­ÇÒ ±Ç¸®¸¦ ´Ù¸¥ thread¿Í °æÀïÇÕ´Ï´Ù. °´Ã¼ÀÇ Á¦¾î¸¦ ȹµæÇϸé, °´Ã¼¿¡ ´ëÇÑ ÀÌ threadÀÇ µ¿±â ¿ä±¸´Â ÀÌÀü »óÅÂ, Áï, wait ¸Þ¼­µå°¡ ºÒ·Á °¬À» ¶§ »óÅ¿¡ º¹¿øµË´Ï´Ù. ´ÙÀ½¿¡ thread T´Â wait ¸Þ¼­µåÀÇ È£Ãâ·ÎºÎÅÍ º¹±ÍÇÕ´Ï´Ù. ÀÌ·¸°Ô ÇØ, wait ¸Þ¼­µå·ÎºÎÅÍ º¹±ÍÇÑ ½ÃÁ¡¿¡¼­ °´Ã¼ ¹× thread T µ¿±â ½ºÅ×ÀÌÅͽº´Â wait ¸Þ¼­µå°¡ ºÒ·Á °¬À» ¶§¿Í ¿ÏÀüÈ÷ °°°Ô µË´Ï´Ù.

thread´Â ÅëÁö, ³¢¾îµé¾î, ŸÀÓ ¾Æ¿ô¾øÀÌ Àç°³µÇ´Â ÀÏÀÌ ÀÖ½À´Ï´Ù. ÀÌ°ÍÀº ¡¸½ºÇÁ¸®¾Æ½º¿þÀÌÅ©¾Ð¡¹À̶ó°í ºÒ¸®°í ÀÖ½À´Ï´Ù. ½ºÇÁ¸®¾Æ½º¿þÀÌÅ©¾ÐÀº ½ÇÁ¦·Î´Â º¸±â µå¹°°Ô ¹Û¿¡ ¹ß»ýÇÕ´Ï´Ù¸¸, ¾îÇø®ÄÉÀ̼ǿ¡¼­´Â thread°¡ Àç°³µÇ´Â °ÍÀ¸·Î ¹ß»ýÇÒ °¡´É¼ºÀÌ ÀÖ´Â Á¶°ÇÀ» Å×½ºÆ®ÇØ, Á¶°ÇÀÌ Ã¤¿öÁöÁö ¾ÊÀº °æ¿ì´Â ´ë±â¸¦ °è¼ÓÇØ, ½ºÇÁ¸®¾Æ½º¿þÀÌÅ©¾ÐÀ¸·ÎºÎÅÍ º¸È£ÇÏÁö ¾ÊÀ¸¸é ¾ÈµË´Ï´Ù. Áï, ´ÙÀ½°ú °°ÀÌ ·çÇÁ·Î Ç×»ó ´ë±â°¡ ¹ß»ýÇϵµ·Ï ÇÒ ÇÊ¿ä°¡ ÀÖ½À´Ï´Ù.


     synchronized (obj) {
         while (<condition does not hold>)
             obj.wait(timeout);
         ... // Perform action appropriate to condition
     }
 
(ÀÌ ÅäÇÈÀÇÀÚ¼¼ÇÑ ³»¿ëÀº Doug Lea Àú ¡¸Concurrent Programming in Java (Second Edition)¡¹(Addison-Wesley, 2000)ÀÇ ¼½¼Ç 3.2. 3 À̳ª Joshua Bloch Àú ¡¸Effective Java Programming Language Guide¡¹(Addison-Wesley, 2001)ÀÇÀÚ½Ä ÅÛ 50À» ÂüÁ¶ÇϽʽÿÀ).

ÇöÀçÀÇ thread°¡ ´ë±âÁß¿¡ ´Ù¸¥ thread¿¡ Çس¢¾îµé¾îÁ³À» °æ¿ì´Â InterruptedExceptionÀÌ ¹ß»ý µË´Ï´Ù. ÀÌ ¿¹¿Ü´Â ÀÌ °´Ã¼ÀÇ ¶ô ½ºÅ×ÀÌÅͽº°¡ Àü¼ú°ú °°ÀÌ º¹¿øµÉ ¶§±îÁö´Â Throw µÇÁö ¾Ê½À´Ï´Ù.

ÇöÀçÀÇ thread¸¦ ÀÌ °´Ã¼ÀÇ ´ë±â ¼¼Æ®¿¡ ³ÖÀ» ¶§, wait ¸Þ¼­µå´Â ÀÌ °´Ã¼ÀÇ ¶ô¸¸À» ÇØÁ¦ÇÕ´Ï´Ù. ÇöÀçÀÇ thread°¡ µ¿±âÈ­ÇÒ °¡´É¼ºÀÌ ÀÖ´Â ±× ´Ù¸¥ °´Ã¼´Â ÀÌ thread°¡ ´ë±âÇÏ°í ÀÖ´Â µ¿¾Èµµ ¶ô µÈ´ë·Î ÀÔ´Ï´Ù.

ÀÌ ¸Þ¼­µå¸¦ È£ÃâÇÏ´Â °ÍÀº ÀÌ °´Ã¼ÀÇ ¸ð´ÏÅ͸¦ ¼ÒÀ¯ÇÏ´Â thread »Ó¸¸ÀÌ ¾Æ´Ï¸é ¾ÈµË´Ï´Ù. thread°¡ °´Ã¼ÀÇ ¸ð´ÏÅÍÀÇ ¿À³Ê°¡ µÇ´Â ¹æ¹ý¿¡ ´ëÇؼ­´Â notify ¸Þ¼­µå¸¦ ÂüÁ¶ÇϽʽÿÀ.

ÆĶó¹ÌÅÍ:
timeout - ¹Ð¸® ¼¼ÄÁµå ´ÜÀ§ÀÇ ´ë±â ½Ã°£
¿¹¿Ü:
IllegalArgumentException - timeout °ªÀÌ ºÎÀÎ °æ¿ì
IllegalMonitorStateException - ÇöÀçÀÇ thread°¡ °´Ã¼ÀÇ ¸ð´ÏÅ͸¦ ¼ÒÀ¯ÇÏ°í ÀÖÁö ¾Ê´Â °æ¿ì
InterruptedException - ÇöÀçÀÇ thread°¡ ÅëÁö¸¦ ´ë±âÇϱâ Àü ¶Ç´Â ´ë±âÁß¿¡ ´Ù¸¥ thread°¡ ÇöÀçÀÇ thread¿¡ ³¢¾îµé¾úÀ» °æ¿ì. ÀÌ ¿¹¿Ü°¡ Throw µÇ¸é, ÇöÀçÀÇ threadÀÇ ¡¸ÀÎÅÍ·´Æ® ½ºÅ×ÀÌÅͽº¡¹´Â Ŭ¸®¾î µÇ´Â
°ü·Ã Ç׸ñ:
notify(), notifyAll()

wait

public final void wait(long timeout,
                       int nanos)
                throws InterruptedException 
´Ù¸¥ thread°¡ ÀÌ °´Ã¼ÀÇ notify() ¸Þ¼­µå ¶Ç´Â notifyAll() ¸Þ¼­µå¸¦ È£ÃâÇÏ´ÂÁö, ´Ù¸¥ thread°¡ ÇöÀçÀÇ thread¿¡ ÀÎÅÍ·´Æ®¸¦ °É°Å³ª ÁöÁ¤µÈ ¾çÀÇ ½Ç½Ã°£ÀÌ °æ°úÇÒ ¶§±îÁö, ÇöÀçÀÇ thread¸¦ ´ë±â½Ãŵ´Ï´Ù.

ÀÌ ¸Þ¼­µå´Â Àμö°¡ 1°³ÀÇ wait ¸Þ¼­µå¸¦ ´à¾Æ ÀÖ½À´Ï´Ù¸¸, ŸÀÓ ¾Æ¿ô±îÁöÀÇ ´ë±â ½Ã°£ÀÇ ¾çÀ» º¸´Ù ¼¼¼¼ÇÏ°Ô Á¦¾îÇÒ ¼ö ÀÖ½À´Ï´Ù . ³ª³ëÃÊ´ÜÀ§ÀÇ ½Ç½Ã°£Àº ´ÙÀ½ÀÇ ½Ä¿¡¼­ ÁöÁ¤ÇÕ´Ï´Ù.


 1000000*timeout+nanos

±× ¿ÜÀÇ ¸é¿¡¼­´Â ÀÌ ¸Þ¼­µåÀÇ µ¿ÀÛÀº Àμö°¡ 1°³ÀÇ wait(long) ¸Þ¼­µå¿Í °°½À´Ï´Ù. ƯÈ÷, wait(0, 0)´Â wait(0)¿Í °°Àº Àǹ̰¡ µË´Ï´Ù.

ÇöÀçÀÇ thread´Â °´Ã¼ÀÇ ¸ð´ÏÅÍÀÇ ¿À³Ê°¡ ¾Æ´Ï¸é ¾ÈµË´Ï´Ù. thread´Â ÀÌ ¸ð´ÏÅÍÀÇ ¼ÒÀ¯±ÇÀ» ÇعæÇØ, ´ÙÀ½ÀÇ ¾î¶² °ÍÀΰ¡ »óÅ°¡ ¹ß»ýÇÒ ¶§±îÁö ´ë±âÇÕ´Ï´Ù.

thread´Â ¸ð´ÏÅÍÀÇ ¼ÒÀ¯±ÇÀ» ÀçÂ÷ ȹµæÇÒ ¶§±îÁö ´ë±âÇØ, ±× ÈÄ ½ÇÇàÀ» Àç°³ÇÕ´Ï´Ù.

Àμö°¡ 1°³ÀÇ ¹öÀü¿¡ ¼­´Â ÀÎÅÍ·´Æ®³ª ½ºÇÁ¸®¾Æ½º¿þÀÌÅ©¾ÐÀÌ ¹ß»ýÇÒ °¡´É¼ºÀÌ ÀÖÀ¸¹Ç·Î ÀÌ ¸Þ¼­µå´Â Ç×»ó ·çÇÁ·Î »ç¿ëµÉ ÇÊ¿ä°¡ ÀÖ½À´Ï´Ù.


     synchronized (obj) {
         while (<condition does not hold>)
             obj.wait(timeout, nanos);
         ... // Perform action appropriate to condition
     }
 
ÀÌ ¸Þ¼­µå¸¦ È£ÃâÇÏ´Â °ÍÀº ÀÌ °´Ã¼ÀÇ ¸ð´ÏÅ͸¦ ¼ÒÀ¯ÇÏ´Â thread »Ó¸¸ÀÌ ¾Æ´Ï¸é ¾ÈµË´Ï´Ù. thread°¡ °´Ã¼ÀÇ ¸ð´ÏÅÍÀÇ ¿À³Ê°¡ µÇ´Â ¹æ¹ý¿¡ ´ëÇؼ­´Â notify ¸Þ¼­µå¸¦ ÂüÁ¶ÇϽʽÿÀ.

ÆĶó¹ÌÅÍ:
timeout - ¹Ð¸® ¼¼ÄÁµå ´ÜÀ§ÀÇ ´ë±â ½Ã°£
nanos - Ãß°¡ÀÇ ´ë±â ½Ã°£ (³ª³ëÃÊ´ÜÀ§·Î 0 ~ 999999 ¹üÀ§)
¿¹¿Ü:
IllegalArgumentException - ´ë±â ½Ã°£ÀÇ °ªÀÌ ºÎÀÇ °æ¿ì, ¶Ç´Â nanos °ªÀÌ 0 ~ 999999 ¹üÀ§¿ÜÀÇ °æ¿ì
IllegalMonitorStateException - ÇöÀçÀÇ thread°¡ ÀÌ °´Ã¼ÀÇ ¸ð´ÏÅ͸¦ ¼ÒÀ¯ÇÏ°í ÀÖÁö ¾Ê´Â °æ¿ì
InterruptedException - ÇöÀçÀÇ thread°¡ ÅëÁö¸¦ ´ë±âÇϱâ Àü ¶Ç´Â ´ë±âÁß¿¡ ´Ù¸¥ thread°¡ ÇöÀçÀÇ thread¿¡ ³¢¾îµé¾úÀ» °æ¿ì. ÀÌ ¿¹¿Ü°¡ Throw µÇ¸é, ÇöÀçÀÇ threadÀÇ ¡¸ÀÎÅÍ·´Æ® ½ºÅ×ÀÌÅͽº¡¹´Â Ŭ¸®¾î µÈ´Ù

wait

public final void wait()
                throws InterruptedException 
´Ù¸¥ thread°¡ ÀÌ °´Ã¼ÀÇ notify() ¸Þ¼­µå ¶Ç´Â notifyAll() ¸Þ¼­µå¸¦ È£ÃâÇÒ ¶§±îÁö, ÇöÀçÀÇ thread¸¦ ´ë±â½Ãŵ´Ï´Ù. Áï, ÀÌ ¸Þ¼­µåÀÇ µ¿ÀÛÀº wait(0)¸¦ È£ÃâÇßÀ» °æ¿ì¿Í °°½À´Ï´Ù.

ÇöÀçÀÇ thread´Â ÀÌ °´Ã¼ÀÇ ¸ð´ÏÅÍÀÇ ¿À³Ê°¡ ¾Æ´Ï¸é ¾ÈµË´Ï´Ù. thread´Â ÀÌ ¸ð´ÏÅÍÀÇ ¼ÒÀ¯±ÇÀ» ÇعæÇØ, ´Ù¸¥ thread°¡ notify ¸Þ¼­µå ¶Ç´Â notifyAll ¸Þ¼­µå¸¦ È£ÃâÇØ ÀÌ °´Ã¼ÀÇ ¸ð´ÏÅͻ󿡼­ ´ë±âÇÏ´Â thread¿¡ ÅëÁö¸¦ º¸³¾ ¶§±îÁö ´ë±âÇÕ´Ï´Ù. ±× ÈÄ, thread´Â ¸ð´ÏÅÍÀÇ ¼ÒÀ¯±ÇÀ» ÀçÂ÷ ÃëµæÇÒ ¶§±îÁö ´ë±âÇÏ°í ³ª¼­ ½ÇÇàÀ» Àç°³ÇÕ´Ï´Ù.

Àμö°¡ 1°³ÀÇ ¹öÀü¿¡ ¼­´Â ÀÎÅÍ·´Æ®³ª ½ºÇÁ¸®¾Æ½º¿þÀÌÅ©¾ÐÀÌ ¹ß»ýÇÒ °¡´É¼ºÀÌ ÀÖÀ¸¹Ç·Î ÀÌ ¸Þ¼­µå´Â Ç×»ó ·çÇÁ·Î »ç¿ëµÉ ÇÊ¿ä°¡ ÀÖ½À´Ï´Ù.


     synchronized (obj) {
         while (<condition does not hold>)
             obj.wait();
         ... // Perform action appropriate to condition
     }
 
ÀÌ ¸Þ¼­µå¸¦ È£ÃâÇÏ´Â °ÍÀº ÀÌ °´Ã¼ÀÇ ¸ð´ÏÅ͸¦ ¼ÒÀ¯ÇÏ´Â thread »Ó¸¸ÀÌ ¾Æ´Ï¸é ¾ÈµË´Ï´Ù. thread°¡ °´Ã¼ÀÇ ¸ð´ÏÅÍÀÇ ¿À³Ê°¡ µÇ´Â ¹æ¹ý¿¡ ´ëÇؼ­´Â notify ¸Þ¼­µå¸¦ ÂüÁ¶ÇϽʽÿÀ.

¿¹¿Ü:
IllegalMonitorStateException - ÇöÀçÀÇ thread°¡ °´Ã¼ÀÇ ¸ð´ÏÅ͸¦ ¼ÒÀ¯ÇÏ°í ÀÖÁö ¾Ê´Â °æ¿ì
InterruptedException - ÇöÀçÀÇ thread°¡ ÅëÁö¸¦ ´ë±âÇϱâ Àü ¶Ç´Â ´ë±âÁß¿¡ ´Ù¸¥ thread°¡ ÇöÀçÀÇ thread¿¡ ³¢¾îµé¾úÀ» °æ¿ì. ÀÌ ¿¹¿Ü°¡ Throw µÇ¸é, ÇöÀçÀÇ threadÀÇ ¡¸ÀÎÅÍ·´Æ® ½ºÅ×ÀÌÅͽº¡¹´Â Ŭ¸®¾î µÇ´Â
°ü·Ã Ç׸ñ:
notify(), notifyAll()

finalize

protected void finalize()
                 throws Throwable 
ÀÌ °´Ã¼¿¡ÀÇ ÂüÁ¶´Â ÀÌÁ¦ ¾øÀ¸¸é °¡ºñÁö Ä÷º¼Ç¿¡ ÀÇÇØ ÆǴܵǾúÀ» ¶§¿¡ °¡ºñÁö Ä÷ºÅÍ¿¡ ÀÇÇØ È£ÃâÇÕ´Ï´Ù. ¼­ºê Ŭ·¡½º´Â finalize ¸Þ¼­µå¸¦ ¿À¹ö¶óÀ̵å(override) ÇØ, system resource¸¦ ÆıâÇϰųª ±× ¿ÜÀÇ Å¬¸° ¾÷À» ½Ç½ÃÇϰųª ÇÒ ¼ö ÀÖ½À´Ï´Ù .

finalize ÀϹÝÀûÀÎ ±Ô¾à¿¡¼­´Â finalize È£ÃâÀº ¾ÆÁ÷ »ýÁ¸ÇÏ°í ÀÖ´Â ÀÓÀÇÀÇ thread°¡ ÀÌ °´Ã¼¿¡ ¾×¼¼½º ÇÏ´Â ¹æ¹ýÀº ¾øÀ¸¸é JavaTM °¡»ó ¸Ó½ÅÀÌ ÆÇ´ÜÇßÀ» °æ¿ì¿¡ ÇàÇØÁý´Ï´Ù. ´Ù¸¸, ÆÄÀ̳ª¶óÀÌÁîÀÇ Áغñ°¡ ³¡³­ °Í ¿ÜÀÇ °´Ã¼ ¶Ç´Â Ŭ·¡½º¸¦ ÆÄÀ̳ª¶óÀÌÁîÇϱâ À§ÇÑ Ã³¸®ÀÇ °á°ú ±×·¸°Ô µÇ¾úÀ» °æ¿ì¸¦ Á¦¿ÜÇÕ´Ï´Ù. finalize ¸Þ¼­µå´Â ÀÌ °´Ã¼¸¦ ´Ù¸¥ thread·Î ´Ù½Ã ÀÌ¿ë °¡´ÉÇÏ°Ô ÇÏ´Â Àϵµ Æ÷ÇÔÇØ, ÀÓÀÇÀÇ ¾×¼ÇÀ» ½Ç½ÃÇÒ ¼ö ÀÖ½À´Ï´Ù . ±×·¯³ª, finalize º¸Åë ÀÇ ¿ëµµ´Â °´Ã¼¸¦ Àç»ý ºÒ°¡´ÉÇÑ ÇüÅ·ΠÆıâÇϱâ ÀüÀÇ Å¬¸° ¾÷À» ½ÇÇàÇÏ´Â °ÍÀÔ´Ï´Ù. ¿¹¸¦ µé¾î ÀÔÃâ·ÂÀÇ Á¢¼ÓÀ» ³ªÅ¸³»´Â °´Ã¼ÀÇ finalize ¸Þ¼­µå´Â °´Ã¼°¡ ¿µ±¸ÀûÀ¸·Î ÆıâµÇ±â Àü¿¡ Á¢¼ÓÀ» Àý´ÜÇϱâ À§ÇÑ ¸í½ÃÀûÀÎ ÀÔÃâ·Â 󸮸¦ ½Ç½ÃÇÕ´Ï´Ù.

Object Ŭ·¡½ºÀÇ finalize ¸Þ¼­µå´Â Ưº°ÇÑ Ã³¸®¸¦ ½Ç½ÃÇÏÁö ¾Ê½À´Ï´Ù. ÀϹÝÀûÀ¸·Î ¾Æ¹«°Íµµ ÇÏÁö ¾Ê°í º¹±ÍÇÕ´Ï´Ù. Object ¼­ºê Ŭ·¡½º´Â ÀÌ Á¤ÀǸ¦ ¿À¹ö¶óÀ̵å(override) ÇÒ ¼ö ÀÖ½À´Ï´Ù .

Java ÇÁ·Î±×·¥ ¾ð¾î´Â ÀÓÀÇÀÇ °´Ã¼¿¡ ´ëÇØ ¾î´À thread°¡ finalize ¸Þ¼­µå¸¦ È£ÃâÇÏ´ÂÁö¸¦ º¸ÁõÇÏÁö ¾Ê½À´Ï´Ù. ±×·¯³ª, finalize¸¦ È£ÃâÇÏ´Â thread°¡ »ç¿ëÀÚ¿¡ °Ô °¡½ÃÀÎ µ¿±â ¶ôÀ» finalize È£ÃâÀÇ ½ÃÁ¡¿¡¼­´Â º¸°ü À¯ÁöÇÏ°í ÀÖÁö ¾Ê´Â °Í¿¡ ºÙ¾î º¸ÁõµË´Ï´Ù. ijġ µÇÁö ¾Ê´Â ¿¹¿Ü¸¦ finalize ¸Þ¼­µå°¡ Throw ÇßÀ» °æ¿ì, ¿¹¿Ü´Â ¹«½ÃµÇ¾î °´Ã¼ÀÇ ÆÄÀ̳ª¶óÀÌÁî´Â Á¾·áÇÕ´Ï´Ù.

¾î´À °´Ã¼¿¡ ´ëÇØ finalize ¸Þ¼­µå°¡ ºÒ·Á °£ µÚ¿¡ ´ÙÀ½ÀÇ Ã³¸®°¡ ¹ß»ýÇÏ´Â °ÍÀº ¾ÆÁ÷ »ýÁ¸ÇÏ°í ÀÖ´Â ÀÓÀÇÀÇ thread°¡ ÀÌ °´Ã¼¿¡ ¾×¼¼½º ÇÒ ¼ö ÀÖ´Â ¹æ¹ýÀº ¾øÀ¸¸é Java °¡»ó ¸Ó½ÅÀÌ ´Ù½Ã ÆÇ´ÜÇßÀ» ¶§ÀÔ´Ï´Ù. ÀÌ°Í¿¡´Â ÆÄÀ̳ª¶óÀÌÁîÀÇ Áغñ°¡ µÇ¾î ÀÖ´Â °Í ¿ÜÀÇ °´Ã¼ ¶Ç´Â Ŭ·¡½º¿¡ ÀÇÇØ ¹ß»ýÇÑ Ã³¸®µµ Æ÷ÇÔµÇ¾î ±× ½ÃÁ¡¿¡¼­ ÀÌ °´Ã¼´Â ÆıâµË´Ï´Ù.

ÀÓÀÇÀÇ °´Ã¼¿¡ ´ëÇØ Java °¡»ó ¸Ó½ÅÀÌ finalize ¸Þ¼­µå¸¦ ¿©·¯ Â÷·Ê È£ÃâÇÒ °ÍÀº ¾ø½À´Ï´Ù.

finalize ¸Þ¼­µå¿¡ ÀÇÇØ ¿¹¿Ü°¡ Throw µÇ¸é, finalize ¸Þ¼­µåÀÇ Ã³¸®´Â Á¤ÁöµË´Ï´Ù. ±×·¸Áö ¾ÊÀº °æ¿ì´Â ¹«½ÃµË´Ï´Ù.

¿¹¿Ü:
Throwable - ÀÌ ¸Þ¼­µå·Î »ý±ä Exception

JavaTM 2 Platform
Standard Ed. 5.0

Copyright 2004 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms . Documentation Redistribution Policy µµ ÂüÁ¶ÇϽʽÿÀ.