JavaTM 2 Platform
Standard Ed. 5.0

ÆÐÅ°Áö java.lang.ref

°¡ºñÁö Ä÷ºÅÍ¿ÍÀÇ Á¦ÇÑÀûÀÎ ´ëÈ­¸¦ Áö¿øÇÏ´Â, ÂüÁ¶ °´Ã¼ Ŭ·¡½º¸¦ Á¦°øÇÕ´Ï´Ù.

ÂüÁ¶Ã³:
          ¼³¸í

Ŭ·¡½º °³¿ä
PhantomReference<T> ÆÒÅÒ ÂüÁ¶ °´Ã¼ÀÔ´Ï´Ù.
Reference<T> ÂüÁ¶ °´Ã¼ Æí¸®ÇÑ Ãß»ó base classÀÔ´Ï´Ù.
ReferenceQueue<T> ÂüÁ¶ Å¥ÀÔ´Ï´Ù.
SoftReference<T> ¸Þ¸ð¸® ¿ä±¸¿¡ ÀÀÇØ °¡ºñÁö Ä÷ºÅÍÀÇ ÆÇ´ÜÀ¸·Î Ŭ¸®¾î µÇ´Â ¼ÒÇÁÆ® ÂüÁ¶ °´Ã¼ÀÔ´Ï´Ù.
WeakReference<T> ¾àÂüÁ¶ °´Ã¼ÀÔ´Ï´Ù.
 

ÆÐÅ°Áö java.lang.ref ¼³¸í

°¡ºñÁö Ä÷ºÅÍ¿ÍÀÇ Á¦ÇÑÀûÀÎ ´ëÈ­¸¦ Áö¿øÇÏ´Â, ÂüÁ¶ °´Ã¼ Ŭ·¡½º¸¦ Á¦°øÇÕ´Ï´Ù. ÇÁ·Î±×·¥Àº ÂüÁ¶ °´Ã¼¸¦ »ç¿ëÇØ, ÂüÁ¶ °´Ã¼ ÀÌ¿ÜÀÇ °´Ã¼¸¦ Ä÷ºÅ͸¦ Àç»ýÇÒ ¼ö ÀÖµµ·Ï, ÂüÁ¶ °´Ã¼ ÀÌ¿ÜÀÇ °´Ã¼¿¡ÀÇ ÂüÁ¶¸¦ À¯ÁöÇÒ ¼ö ÀÖ½À´Ï´Ù. ¶Ç, ÁöÁ¤µÈ °´Ã¼ÀÇ µµ´Þ °¡´É¼ºÀÌ º¯°æµÇ¾ú´Ù°í Ä÷ºÅÍ°¡ ÆÇ´ÜÇÑ µÚ¿¡ ÇÁ·Î±×·¥ÀÌ ÅëÁö¸¦ ¹Þµµ·Ï ÇÒ ¼öµµ ÀÖ½À´Ï´Ù.

ÆÐÅ°ÁöÀÇ »ç¾ç

¡¸ÂüÁ¶ °´Ã¼¡¹´Â ±× ÂüÁ¶ ÀÚü¸¦ ´Ù¸¥ °´Ã¼¿Í °°ÀÌ °Ë»ç ¹× Á¶ÀÛÇÒ ¼ö ÀÖµµ·Ï Çϱâ À§Çؼ­ ´Ù¸¥ °´Ã¼¿¡ÀÇ ÂüÁ¶¸¦ ĸ½¶È­ÇÕ´Ï´Ù. ¾àÇÑ °ÍÀ¸·ÎºÎÅÍ ¼ø¼­¿¡ ¡¸¼ÒÇÁÆ®¡¹, ¡¸¹Ì¸¸¡¹ ¹× ¡¸ÆÒÅÒ¡¹À̶ó°í ÇÏ´Â 3 Á¾·ùÀÇ ÂüÁ¶ °´Ã¼°¡ Á¦°øµË´Ï´Ù. °¢ ÇüÀº ´ÙÀ½¿¡ Á¤Àǵǰí ÀÖµµ·Ï, ´ëÀÀÇÏ´Â µµ´Þ °¡´É¼ºÀÇ ·¹º§ÀÌ °¢°¢ ´Ù¸¨´Ï´Ù. ¼ÒÇÁÆ® ÂüÁ¶´Â ¸Þ¸ð¸®¿¡ ¹Î°¨ÇÑ Ä³½¬¸¦ ±¸ÇöÇϱâ À§Çؼ­ Á¦°øµË´Ï´Ù. ¾àÂüÁ¶´Â Å° ¶Ç´Â °ªÀÌ ÀçÀÌ¿ëµÇ´Â °ÍÀ» ÀúÁöÇÏÁö ¾Ê´Â Ç¥ÁØÈ­ ¸ÅÇÎÀ» ±¸ÇöÇϱâ À§Çؼ­ Á¦°øµË´Ï´Ù. ÆÒÅÒ ÂüÁ¶´Â Java ÆÄÀ̳ª¶óÀÌÁî µµ±¸ º¸´Ù À¯¿¬ÇÑ ¹æ¹ýÀ¸·Î ÇÁ¸®¸ð¸£ÅÛÅ©¸®¾Ð¾ÆÅ©¼ÇÀ» ½ºÄÉÁÙ¸µ Çϱâ À§Çؼ­ Á¦°øµË´Ï´Ù.

°¢ ÇüÀÇ ÂüÁ¶ °´Ã¼´Â Ãß»ó ±âÀú Reference Ŭ·¡½ºÀÇ ¼­ºê Ŭ·¡½º¿¡ ÀÇÇØ ±¸ÇöµË´Ï´Ù. ±×·¯ÇÑ ¼­ºê Ŭ·¡½ºÀÇ ÀνºÅϽº´Â ¡¸¸®ÆÄ·»Æ®¡¹¶ó°í ºÒ¸®´Â ƯÁ¤ÀÇ °´Ã¼¿¡ÀÇ ÂüÁ¶¸¦ ĸ½¶È­ÇÕ´Ï´Ù. °¢ ÂüÁ¶ °´Ã¼´Â ÂüÁ¶¸¦ Ãëµæ ¹× Ŭ¸®¾îÇϱâ À§ÇÑ ¸Þ¼­µå¸¦ Á¦°øÇÕ´Ï´Ù. Ŭ¸®¾î 󸮴 Á¦°øµË´Ï´Ù¸¸, ÂüÁ¶ °´Ã¼´Â ºÒº¯À̱⠶§¹®¿¡ set ¿ÀÆÛ·¹À̼ÇÀº Á¦°øµÇÁö ¾Ê½À´Ï´Ù. ÇÁ·Î±×·¥Àº ÀÌ·¯ÇÑ ¼­ºê Ŭ·¡½º¸¦ ¶ÇÇÑ »ó¼ÓÇØ ¸ñÀû¿¡ ÀÖ´ø ÇÊµå ¹× ¸Þ¼­µå¸¦ Ãß°¡ÇÏ´Â Àϵµ, ÀÌ·¯ÇÑ ¼­ºê Ŭ·¡½º¸¦ º¯°æÇÏÁö ¾Ê°í ±×´ë·Î »ç¿ëÇÒ ¼öµµ ÀÖ½À´Ï´Ù.

ÅëÁö

ÇÁ·Î±×·¥Àº ÀûÀýÇÑ ÂüÁ¶ °´Ã¼¸¦ ±×°ÍÀÌ ÀÛ¼ºµÈ ½ÃÁ¡¿¡¼­ ¡¸ÂüÁ¶ Å¥¡¹¿¡ ¡¸µî·Ï¡¹ÇÏ´Â °Í¿¡ÀÇÇØ °´Ã¼ÀÇ µµ´Þ °¡´É¼ºÀÌ º¯°æµÈ ÅëÁö¸¦ ¹Þµµ·Ï ¿ä±¸ÇÒ ¼ö ÀÖ½À´Ï´Ù. ¸®ÆÄ·»Æ®ÀÇ µµ´Þ °¡´É¼ºÀÌ ±× ÂüÁ¶Çü¿¡ ´ëÀÀÇÏ´Â °ªÀ¸·Î º¯°æµÇ¾ú´Ù°í ÆÇ´ÜÇÑ µÚ¿¡ °¡ºñÁö Ä÷ºÅÍ´Â ±× ÂüÁ¶¸¦ °ü·ÃÇÑ Å¥¿¡ Ãß°¡ÇÕ´Ï´Ù. ÀÌ ½ÃÁ¡¿¡¼­ ÂüÁ¶´Â ¡¸Å¥¿¡ µé¾î°¡ ÀÖ´Ù¡¹¶ó°í º¸¿©Áý´Ï´Ù. ÇÁ·Î±×·¥Àº ÂüÁ¶°¡ ÀÌ¿ë °¡´ÉÇÏ°Ô µÉ ¶§±îÁö Æú¸µ ¶Ç´Â ºí·Ï ÇÏ´Â °Í¿¡ÀÇÇØ Å¥·ÎºÎÅÍ ÂüÁ¶¸¦ »èÁ¦ÇÒ ¼ö ÀÖ½À´Ï´Ù. ÂüÁ¶ Å¥´Â ReferenceQueue Ŭ·¡½º¿¡ ÀÇÇØ ±¸ÇöµË´Ï´Ù.

µî·ÏµÈ ÂüÁ¶ °´Ã¼¿Í ±× Å¥ÀÇ °ü°è´Â ÇѹæÇâÀÔ´Ï´Ù. Áï, Å¥´Â µî·ÏµÇ¾î ÀÖ´Â ÂüÁ¶ÀÇ ÀÌ·ÂÀ» ±â·ÏÇÏÁö ¾Ê½À´Ï´Ù. µî·ÏµÇ¾î ÀÖ´Â ÂüÁ¶ ÀÚü°¡ µµ´Þ ºÒ°¡´ÉÇÏ°Ô µÇ¸é, ±×°ÍÀº Àý´ë·Î Å¥¿¡ ³Ö¾îÁöÁö ¾Ê½À´Ï´Ù. ÂüÁ¶ °´Ã¼¸¦ »ç¿ëÇØ ÇÁ·Î±×·¥ÀÌ ¸®ÆÄ·»Æ®¸¦ ÇÊ¿ä·Î ÇÏ´Â ÇÑ °´Ã¼¸¦ µµ´Þ °¡´ÉÇÏ°ÔÀÇÇØ µÎ´Â °ÍÀº ÇÁ·Î±×·¥ÀÇ Ã¥ÀÓÀÔ´Ï´Ù.

ÇÁ·Î±×·¥¿¡ µû¶ó¼­´Â 1°³ ÀÌ»óÀÇ Å¥·ÎºÎÅÍÀÇ ÂüÁ¶ °´Ã¼¸¦ »èÁ¦Çϰųª ±×°ÍµéÀ» ó¸®Çϱâ À§Çؼ­ threadÀÇ ÇÒ´çÀ» ¼±ÅÃÇÏ´Â °æ¿ì°¡ ÀÖ½À´Ï´Ù¸¸, ÀÌ°ÍÀº ¹Ýµå½Ã ÇÊ¿ä ¾ø½À´Ï´Ù. ¸¹Àº °æ¿ì¿¡ Àß ±â´ÉÇÏ´Â ¹æ¹ýÀº ²Ï ºó¹øÇÏ°Ô ÇàÇØÁö´Â °Í ¿ÜÀÇ ¾×¼ÇÀ» ½ÇÇàÇÏ´Â µ¿¾È¿¡ ÂüÁ¶ Å¥¸¦ °Ë»çÇÏ´Â °ÍÀÔ´Ï´Ù. ¿¹¸¦ µé¾î ¾àÅ°¸¦ ±¸ÇöÇϱâ À§Çؼ­ ¾àÂüÁ¶¸¦ »ç¿ëÇÏ´Â Çؽà Å×À̺íÀÇ °æ¿ì´Â Å×À̺íÀÌ ¾×¼¼½º µÉ ¶§¸¶´Ù ÀÚ½ÅÀÇ ÂüÁ¶ Å¥¿¡ ´ëÇؼ­ Æú¸µ ÇÕ´Ï´Ù. WeakHashMap Ŭ·¡½º´Â ÀÌ ¹æ¹ýÀ¸·Î ±â´ÉÇÕ´Ï´Ù. ReferenceQueue.poll ¸Þ¼­µå´Â ´ÜÁö ³»ºÎ µ¥ÀÌÅÍ ±¸Á¶¸¦ üũÇÒ »ÓÀ̹ǷΠÀÌ Ã¼Å©°¡ Çؽà Å×ÀÌºí ¾×¼¼½º ¸Þ¼­µå¿¡°Ô ÁÖ´Â ¿À¹öÇìµå´Â ¸Å¿ì ºÒ°úÀÔ´Ï´Ù.

ÀÚµ¿ÀûÀ¸·Î Ŭ¸®¾î µÇ´Â ÂüÁ¶

¼ÒÇÁÆ® ÂüÁ¶ ¹× ¾àÂüÁ¶´Â ±×°ÍµéÀÌ µî·ÏµÇ¾î Àִ ť¿¡ Ãß°¡µÇ±â Àü¿¡ Ä÷ºÅÍ¿¡ ÀÇÇØ ÀÚµ¿ÀûÀ¸·Î Ŭ¸®¾î µË´Ï´Ù. ±× ¶§¹®¿¡ ¼ÒÇÁÆ® ÂüÁ¶ ¹× ¾àÂüÁ¶´Â À¯È¿ÇÏ°Ô µÇ±â À§Çؼ­ Å¥¿¡ µî·ÏµÉ ÇÊ¿ä´Â ¾ø½À´Ï´Ù (ÆÒÅÒ ÂüÁ¶´Â ÇÊ¿ä). ÆÒÅÒ ÂüÁ¶¸¦ °³ÀÔ½ÃÄÑ µµ´Þ °¡´ÉÇÑ °´Ã¼´Â ÆÒÅÒ ÂüÁ¶°¡ ¸ðµÎ Ŭ¸®¾î µÇ´ÂÁö, ÆÒÅÒ ÂüÁ¶ ÀÚü°¡ µµ´Þ ºÒ°¡´ÉÇÏ°Ô µÉ ¶§±îÁö µµ´Þ °¡´ÉÇÕ´Ï´Ù.

µµ´Þ °¡´É¼º

µµ´Þ °¡´É¼º¿¡´Â ÃÖ°­À¸·ÎºÎÅÍ Ã̸ֹ¸±îÁöÀÇ ·¹º§ÀÌ ÀÖ¾î, ÀÌ°ÍÀº °´Ã¼ÀÇ ¶óÀÌÇÁ »çÀÌŬÀ» ¹Ý¿µÇÕ´Ï´Ù. ±×°ÍµéÀº ±â´ÉÀûÀ¸·Î ´ÙÀ½°ú °°ÀÌ Á¤Àǵ˴ϴÙ.


JavaTM 2 Platform
Standard Ed. 5.0

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