ʲôÊÇjava¶ÔÏóµÄÇ¿¡¢Èí¡¢ÈõºÍÐéÒýÓÃ
±¾ÎĽéÉܶÔÏóµÄÇ¿¡¢Èí¡¢ÈõºÍÐéÒýÓõĸÅÄî¡¢Ó¦Óü°ÆäÔÚUMLÖеıíʾ¡£
1£®¶ÔÏóµÄÇ¿¡¢Èí¡¢ÈõºÍÐéÒýÓÃ
ÔÚJDK 1.2ÒÔǰµÄ°æ±¾ÖУ¬ÈôÒ»¸ö¶ÔÏó²»±»ÈκαäÁ¿ÒýÓã¬ÄÇô³ÌÐò¾ÍÎÞ·¨ÔÙʹÓÃÕâ¸ö¶ÔÏó¡£Ò²¾ÍÊÇ˵£¬Ö»ÓжÔÏó´¦ÓÚ¿É´¥¼°£¨reachable£©×´Ì¬£¬³ÌÐò²ÅÄÜʹÓÃËü¡£´ÓJDK 1.2°æ±¾¿ªÊ¼£¬°Ñ¶ÔÏóµÄÒýÓ÷ÖΪ4ÖÖ¼¶±ð£¬´Ó¶øÊ¹³ÌÐòÄܸü¼ÓÁé»îµØ¿ØÖƶÔÏóµÄÉúÃüÖÜÆÚ¡£Õâ4ÖÖ¼¶±ðÓɸߵ½µÍÒÀ´ÎΪ£ºÇ¿ÒýÓá¢ÈíÒýÓá¢ÈõÒýÓúÍÐéÒýÓá£Í¼1Ϊ¶ÔÏóÓ¦ÓÃÀà²ã´Î¡£
ͼ1
¢ÅÇ¿ÒýÓã¨StrongReference£©
Ç¿ÒýÓÃÊÇʹÓÃ×îÆÕ±éµÄÒýÓá£Èç¹ûÒ»¸ö¶ÔÏó¾ßÓÐÇ¿ÒýÓã¬ÄÇÀ¬»ø»ØÊÕÆ÷¾ø²»»á»ØÊÕËü¡£µ±ÄÚ´æ¿Õ¼ä²»×㣬JavaÐéÄâ»úÄþÔ¸Å׳öOutOfMemoryError´íÎó£¬Ê¹³ÌÐòÒì³£ÖÕÖ¹£¬Ò²²»»á¿¿ËæÒâ»ØÊÕ¾ßÓÐÇ¿ÒýÓõĶÔÏóÀ´½â¾öÄÚ´æ²»×ãµÄÎÊÌâ¡£
¢ÆÈíÒýÓã¨SoftReference£©
Èç¹ûÒ»¸ö¶ÔÏóÖ»¾ßÓÐÈíÒýÓã¬ÔòÄÚ´æ¿Õ¼ä×ã¹»£¬À¬»ø»ØÊÕÆ÷¾Í²»»á»ØÊÕËü£»Èç¹ûÄÚ´æ¿Õ¼ä²»×ãÁË£¬¾Í»á»ØÊÕÕâЩ¶ÔÏóµÄÄÚ´æ¡£Ö»ÒªÀ¬»ø»ØÊÕÆ÷ûÓлØÊÕËü£¬¸Ã¶ÔÏó¾Í¿ÉÒÔ±»³ÌÐòʹÓá£ÈíÒýÓÿÉÓÃÀ´ÊµÏÖÄÚ´æÃô¸ÐµÄ¸ßËÙ»º´æ£¨ÏÂÎĸø³öʾÀý£©¡£
ÈíÒýÓÿÉÒÔºÍÒ»¸öÒýÓöÓÁУ¨ReferenceQueue£©ÁªºÏʹÓã¬Èç¹ûÈíÒýÓÃËùÒýÓõĶÔÏó±»À¬»ø»ØÊÕÆ÷»ØÊÕ£¬JavaÐéÄâ»ú¾Í»á°ÑÕâ¸öÈíÒýÓüÓÈëµ½ÓëÖ®¹ØÁªµÄÒýÓöÓÁÐÖС£
¢ÇÈõÒýÓã¨WeakReference£©
ÈõÒýÓÃÓëÈíÒýÓõÄÇø±ðÔÚÓÚ£ºÖ»¾ßÓÐÈõÒýÓõĶÔÏóÓµÓиü¶ÌÔݵÄÉúÃüÖÜÆÚ¡£ÔÚÀ¬»ø»ØÊÕÆ÷Ïß³ÌɨÃèËüËù¹ÜϽµÄÄÚ´æÇøÓòµÄ¹ý³ÌÖУ¬Ò»µ©·¢ÏÖÁËÖ»¾ßÓÐÈõÒýÓõĶÔÏ󣬲»¹Üµ±Ç°ÄÚ´æ¿Õ¼ä×ã¹»Óë·ñ£¬¶¼»á»ØÊÕËüµÄÄÚ´æ¡£²»¹ý£¬ÓÉÓÚÀ¬»ø»ØÊÕÆ÷ÊÇÒ»¸öÓÅÏȼ¶ºÜµÍµÄỊ̈߳¬Òò´Ë²»Ò»¶¨»áºÜ¿ì·¢ÏÖÄÇЩֻ¾ßÓÐÈõÒýÓõĶÔÏó¡£
ÈõÒýÓÿÉÒÔºÍÒ»¸öÒýÓöÓÁУ¨ReferenceQueue£©ÁªºÏʹÓã¬Èç¹ûÈõÒýÓÃËùÒýÓõĶÔÏó±»À¬»ø»ØÊÕ£¬JavaÐéÄâ»ú¾Í»á°ÑÕâ¸öÈõÒýÓüÓÈëµ½ÓëÖ®¹ØÁªµÄÒýÓöÓÁÐÖС£
¢ÈÐéÒýÓã¨PhantomReference£©
“ÐéÒýÓÔ¹ËÃû˼Ò壬¾ÍÊÇÐÎͬÐéÉ裬ÓëÆäËû¼¸ÖÖÒýÓö¼²»Í¬£¬ÐéÒýÓò¢²»»á¾ö¶¨¶ÔÏóµÄÉúÃüÖÜÆÚ¡£Èç¹ûÒ»¸ö¶ÔÏó½ö³ÖÓÐÐéÒýÓã¬ÄÇôËü¾ÍºÍûÓÐÈκÎÒýÓÃÒ»Ñù£¬ÔÚÈκÎʱºò¶¼¿ÉÄܱ»À¬»ø»ØÊÕÆ÷»ØÊÕ¡£
ÐéÒýÓÃÖ÷ÒªÓÃÀ´¸ú×Ù¶ÔÏó±»À¬»ø»ØÊÕÆ÷»ØÊյĻ¡£ÐéÒýÓÃÓëÈíÒýÓúÍÈõÒýÓõÄÒ»¸öÇø±ðÔÚÓÚ£ºÐéÒýÓñØÐëºÍÒýÓöÓÁÐ £¨ReferenceQueue£©ÁªºÏʹÓᣵ±À¬»ø»ØÊÕÆ÷×¼±¸»ØÊÕÒ»¸ö¶ÔÏóʱ£¬Èç¹û·¢ÏÖËü»¹ÓÐÐéÒýÓ㬾ͻáÔÚ»ØÊÕ¶ÔÏ
Ïà¹ØÎĵµ£º
½ñÌìÔÚ±àдһ¸ö¿ìËÙÅÅÐòº¯Êý£¬ÆäÖÐÏëÓÃÒ»¸öÔÚC++ÖÐÀàËÆswap¹¦Äܵĺ¯Êý£¬½á¹ûÒý·¢ÁËһϵÁеÄÎÊÌâ¡£
ÏÂÃæÊÇÔÚÍøÉÏËѵ½µÄ´úÂ룬²¢ÔÚÎҵı¾µØ»úÉÏ×÷ÁËÔËÐС£
public class ParamTest
{
public static void ......
¼òµ¥µÄ˵£¬ÄÚ²¿£¨inner£©ÀàÖ¸ÄÇЩÀඨÒå´úÂë±»ÖÃÓÚÆäËüÀඨÒåÖеÄÀࣻ¶ø¶ÔÓÚÒ»°ãµÄ¡¢ÀඨÒå´úÂ벻ǶÌ×ÔÚÆäËüÀඨÒåÖеÄÀ࣬³ÆÎª¶¥²ã£¨top-level£©Àà¡£¶ÔÓÚÒ»¸öÄÚ²¿À࣬°üº¬Æä¶¨Òå´úÂëµÄÀà³ÆÎªËüµÄÍⲿ£¨outer£©Àà¡£
1 Static member class£¨¾²Ì¬³ÉÔ±Àࣩ
ÀàÉùÃ÷Öаüº¬“static”¹Ø¼ü×ÖµÄÄÚ²¿Àà¡£ÈçÒÔÏ ......
ÓëÏß³ÌÐÝÃßÀàËÆ£¬Ï̵߳ÄÓÅÏȼ¶ÎÞ·¨±£ÕÏÏ̵߳ÄÖ´ÐдÎÐò¡£Ö»²»¹ý£¬ÓÅÏȼ¶¸ßµÄÏ̻߳ñÈ¡CPU×ÊÔ´µÄ¸ÅÂʽϴó£¬ÓÅÏȼ¶µÍµÄ²¢·Çû»ú»áÖ´ÐС£Ï̵߳ÄÓÅÏȼ¶ÓÃ1-10Ö®¼äµÄÕûÊý±íʾ£¬ÊýÖµÔ½´óÓÅÏȼ¶Ô½¸ß£¬Ä¬ÈϵÄÓÅÏȼ¶Îª5¡£ÔÚÒ»¸öÏß³ÌÖпªÆôÁíÍâÒ»¸öÐÂỊ̈߳¬ÔòпªÏ̳߳ÆÎª¸ÃÏ̵߳Ä×ÓỊ̈߳¬×ÓÏ̳߳õʼÓÅÏ ......
JavaÊÇÓÉSUN Microsystem¹«Ë¾¿ª·¢µÄ¡¢ÓÉC++·¢Õ¹¶øÀ´µÄÒ»ÖÖÃæÏò¶ÔÏóµÄͨÓóÌ
ÐòÉè¼ÆÓïÑÔ¡£Java²¢²»ÊÇרÃÅΪInternet¶ø¿ª·¢µÄ£¬µ«ËüµÄ³öÏÖµÄȷΪInternetºÍWWW
¿ª±ÙÁËÒ»¸öոеÄʱ´ú¡£Ëü¾ßÓÐÒÔÏÂÒ»Ð©ÌØµã£»¼òµ¥¡¢ÃæÏò¶ÔÏó¡¢·Ö²¼Ê½¡¢Ç¿×³¡¢°²È«¡¢
Óë²Ù×÷ƽ̨Î޹ء¢¸ßÐÔÄÜ¡¢¶àÏß³ÌÒÔ¼°¶¯Ì¬ÐÔ¡£ ......
Ò»£¬Ï̵߳ÄËĸöÖ÷ÒªÖÜÆÚ״̬ÊÇ“´´½¨”£¬“¿ÉÖ´ÐД£¬“·Ç¿ÉÖ´ÐД£¬“ÏûÍö”£¬×´Ì¬×ª»»¹ØÏµÈçÏÂͼ£º
£¨1£©´´½¨¡£µ±ÊµÀý»¯Ò»¸öthread¶ÔÏó²¢Ö´ÐÐstart()·½·¨ºó£¬Ï߳̽øÈë“¿ÉÖ´ÐД״̬¿ªÊ¼Ö´ÐС£ËäÈ»¶àÏ̸߳øÓû§Ò»ÖÖͬʱִÐеļÙÏ󣬵«ÊÂʵÉÏÔÚͬһʱ¼äµãÄÚ£¬Ö»ÓÐÒ»¸ö ......