°Ë±¦Êé¿â > ÎÄѧÆäËûµç×ÓÊé > Java±à³Ì˼ÏëµÚ4°æ[ÖÐÎÄ°æ](PDF¸ñʽ) >

µÚ37²¿·Ö

Java±à³Ì˼ÏëµÚ4°æ[ÖÐÎÄ°æ](PDF¸ñʽ)-µÚ37²¿·Ö

С˵£º Java±à³Ì˼ÏëµÚ4°æ[ÖÐÎÄ°æ](PDF¸ñʽ) ×ÖÊý£º ÿҳ4000×Ö

°´¼üÅÌÉÏ·½Ïò¼ü ¡û »ò ¡ú ¿É¿ìËÙÉÏÏ·­Ò³£¬°´¼üÅÌÉ쵀 Enter ¼ü¿É»Øµ½±¾ÊéĿ¼ҳ£¬°´¼üÅÌÉÏ·½Ïò¼ü ¡ü ¿É»Øµ½±¾Ò³¶¥²¿£¡
¡ª¡ª¡ª¡ªÎ´ÔĶÁÍꣿ¼ÓÈëÊéÇ©ÒѱãÏ´μÌÐøÔĶÁ£¡




ÏóÕ¼¾ÝµÄÄÚ´æ¡£ÏÖÔÚ¿¼ÂÇÒ»Öַdz£ÌØÊâÇÒ²»¶à¼ûµÄÇé¿ö¡£¼Ù¶¨ÎÒÃǵĶÔÏó·ÖÅäÁËÒ»¸ö¡°ÌØÊ⡱ÄÚ´æÇøÓò£¬Ã»¡¡

ÓÐʹÓá¡new¡£À¬»øÊÕ¼¯Æ÷Ö»ÖªµÀÊÍ·ÅÄÇЩÓÉnew¡¡·ÖÅäµÄÄڴ棬ËùÒÔ²»ÖªµÀÈçºÎÊͷŶÔÏóµÄ¡°ÌØÊ⡱Äڴ档Ϊ¡¡

½â¾öÕâ¸öÎÊÌ⣬Java¡¡ÌṩÁËÒ»¸öÃûΪfinalize£¨£©µÄ·½·¨£¬¿ÉΪÎÒÃǵÄÀඨÒåËü¡£ÔÚÀíÏëÇé¿öÏ£¬ËüµÄ¹¤×÷Ô­¡¡

ÀíÓ¦¸ÃÊÇÕâÑùµÄ£ºÒ»µ©À¬»øÊÕ¼¯Æ÷×¼±¸ºÃÊͷŶÔÏóÕ¼ÓõĴ洢¿Õ¼ä£¬ËüÊ×Ïȵ÷Óá¡finalize£¨£©£¬¶øÇÒÖ»ÓÐÔÚÏ¡¡

Ò»´ÎÀ¬»øÊÕ¼¯¹ý³ÌÖУ¬²Å»áÕæÕý»ØÊÕ¶ÔÏóµÄÄÚ´æ¡£ËùÒÔÈç¹ûʹÓÃfinalize£¨£©£¬¾Í¿ÉÒÔÔÚÀ¬»øÊÕ¼¯ÆÚ¼ä½øÐÐÒ»¡¡

ЩÖØÒªµÄÇå³ý»òÇåɨ¹¤×÷¡£¡¡¡¡

µ«Ò²ÊÇÒ»¸öDZÔڵıà³ÌÏÝÚ壬ÒòΪÓÐЩ³ÌÐòÔ±£¨ÌرðÊÇÔÚ¡¡C£«£«¿ª·¢±³¾°µÄ£©¸Õ¿ªÊ¼¿ÉÄÜ»á´íÎóÈÏΪËü¾ÍÊÇÔÚ¡¡

C£«£«ÖÐΪ¡°ÆÆ»µÆ÷¡±£¨Destructor£©Ê¹ÓõÄfinalize£¨£©¡ª¡ªÆÆ»µ£¨Çå³ý£©Ò»¸ö¶ÔÏóµÄʱºò£¬¿Ï¶¨»áµ÷ÓÃÕâ¸ö¡¡

º¯Êý¡£µ«ÔÚÕâÀïÓбØÒªÇø·ÖÒ»ÏÂC£«£«ºÍ¡¡Java¡¡µÄÇø±ð£¬ÒòΪC£«£«µÄ¶ÔÏó¿Ï¶¨»á±»Çå³ý£¨ÅÅ¿ª±à³Ì´íÎóµÄÒò¡¡

ËØ£©£¬¶øJava¡¡¶ÔÏ󲢷ǿ϶¨ÄÜ×÷ΪÀ¬»ø±»¡°ÊÕ¼¯¡±È¥¡£»òÕß»»¾ä»°Ëµ£º¡¡¡¡

¡¡¡¡

À¬»øÊÕ¼¯²¢²»µÈÓÚ¡°ÆÆ»µ¡±£¡¡¡¡¡

¡¡¡¡

ÈôÄÜʱ¿ÌÀμÇÕâÒ»µã£¬²Èµ½ÏÝÚåµÄ¿ÉÄÜÐԾͻá´ó´ó¼õÉÙ¡£ËüÒâζ×ÅÔÚÎÒÃDz»ÔÙÐèÒªÒ»¸ö¶ÔÏó֮ǰ£¬ÓÐЩÐж¯¡¡

ÊDZØÐë²ÉÈ¡µÄ£¬¶øÇÒ±ØÐëÓÉ×Ô¼ºÀ´²ÉÈ¡ÕâЩÐж¯¡£Java¡¡²¢Î´Ìṩ¡°ÆÆ»µÆ÷¡±»òÕßÀàËƵĸÅÄËùÒÔ±ØÐë´´½¨¡¡

Ò»¸öԭʼµÄ·½·¨£¬ÓÃËüÀ´½øÐÐÕâÖÖÇå³ý¡£ÀýÈ磬¼ÙÉèÔÚ¶ÔÏó´´½¨¹ý³ÌÖУ¬Ëü»á½«×Ô¼ºÃè»æµ½ÆÁÄ»ÉÏ¡£Èç¹û²»¡¡

´ÓÆÁÄ»Ã÷ȷɾ³ýËüµÄͼÏñ£¬ÄÇôËü¿ÉÄÜÓÀÔ¶¶¼²»»á±»Çå³ý¡£ÈôÔÚfinalize£¨£©ÀïÖÃÈëijÖÖɾ³ý»úÖÆ£¬ÄÇô¼ÙÉè¡¡

¶ÔÏó±»µ±×÷À¬»øÊÕµôÁË£¬Í¼ÏñÊ×ÏȻὫ×ÔÉí´ÓÆÁÄ»ÉÏÒÆÈ¥¡£µ«Èôδ±»ÊÕµô£¬Í¼Ïñ¾Í»á±£ÁôÏÂÀ´¡£ËùÒÔÒª¼Çס¡¡

µÄµÚ¶þ¸öÖصãÊÇ£º¡¡¡¡

¡¡¡¡

ÎÒÃǵĶÔÏó¿ÉÄܲ»»áµ±×÷À¬»ø±»ÊÕµô£¡¡¡¡¡

¡¡¡¡

ÓÐʱ¿ÉÄÜ·¢ÏÖÒ»¸ö¶ÔÏóµÄ´æ´¢¿Õ¼äÓÀÔ¶¶¼²»»áÊÍ·Å£¬ÒòΪ×Ô¼ºµÄ³ÌÐòÓÀÔ¶¶¼½Ó½üÓÚÓùâ¿Õ¼äµÄÁÙ½çµã¡£Èô³Ì¡¡

ÐòÖ´ÐнáÊø£¬¶øÇÒÀ¬»øÊÕ¼¯Æ÷Ò»Ö±¶¼Ã»ÓÐÊÍ·ÅÎÒÃÇ´´½¨µÄÈκζÔÏóµÄ´æ´¢¿Õ¼ä£¬ÔòËæ×ųÌÐòµÄÍ˳ö£¬ÄÇЩ×Ê¡¡

Ô´»á·µ»Ø¸ø²Ù×÷ϵͳ¡£ÕâÊÇÒ»¼þºÃÊÂÇ飬ÒòΪÀ¬»øÊÕ¼¯±¾ÉíÒ²ÒªÏûºÄһЩ¿ªÏú¡£ÈçÓÀÔ¶¶¼²»ÓÃËü£¬ÄÇôÓÀÔ¶¡¡

Ò²²»ÓÃÖ§³öÕⲿ·Ö¿ªÏú¡£¡¡¡¡



4¡£3¡£1¡¡finalize£¨£©¡¡ÓÃ;ºÎÔÚ¡¡¡¡



´Ëʱ£¬´ó¼Ò¿ÉÄÜÒÑÏàÐÅÁË×Ô¼ºÓ¦¸Ã½«finalize£¨£©×÷ΪһÖÖ³£¹æÓÃ;µÄÇå³ý·½·¨Ê¹Óá£ËüÓÐʲôºÃ´¦ÄØ£¿¡¡¡¡

Òª¼ÇסµÄµÚÈý¸öÖصãÊÇ£º¡¡¡¡

¡¡¡¡

À¬»øÊÕ¼¯Ö»¸úÄÚ´æÓйأ¡¡¡¡¡

¡¡¡¡

Ò²¾ÍÊÇ˵£¬À¬»øÊÕ¼¯Æ÷´æÔÚµÄΨһԭÒòÊÇΪÁË»ØÊÕ³ÌÐò²»ÔÙʹÓõÄÄÚ´æ¡£ËùÒÔ¶ÔÓÚÓëÀ¬»øÊÕ¼¯ÓйصÄÈκλ

¶¯À´Ëµ£¬ÆäÖÐ×îÖµµÃ×¢ÒâµÄÊÇfinalize£¨£©·½·¨£¬ËüÃÇÒ²±ØÐëͬÄÚ´æÒÔ¼°ËüµÄ»ØÊÕÓйء£¡¡¡¡

µ«ÕâÊÇ·ñÒâζ׿ÙÈç¶ÔÏó°üº¬ÁËÆäËû¶ÔÏó£¬finalize£¨£©¾ÍÓ¦¸ÃÃ÷È·ÊÍ·ÅÄÇЩ¶ÔÏóÄØ£¿´ð°¸ÊÇ·ñ¶¨µÄ¡ª¡ªÀ¬»ø¡¡

ÊÕ¼¯Æ÷»á¸ºÔðÊÍ·ÅËùÓжÔÏóÕ¼¾ÝµÄÄڴ棬ÎÞÂÛÕâЩ¶ÔÏóÊÇÈçºÎ´´½¨µÄ¡£Ëü½«¶Ôfinalize£¨£©µÄÐèÇóÏÞÖƵ½ÌØÊâ¡¡

µÄÇé¿ö¡£ÔÚÕâÖÖÇé¿öÏ£¬ÎÒÃǵĶÔÏó¿É²ÉÓÃÓë´´½¨¶ÔÏóʱ²»Í¬µÄ·½·¨·ÖÅäһЩ´æ´¢¿Õ¼ä¡£µ«´ó¼Ò»òÐí»á×¢Òâ¡¡

µ½£¬Java¡¡ÖеÄËùÓж«Î÷¶¼ÊǶÔÏó£¬ËùÒÔÕâµ½µ×ÊÇÔõôһ»ØÊÂÄØ£¿¡¡¡¡

Ö®ËùÒÔҪʹÓÃfinalize£¨£©£¬¿´ÆðÀ´ËƺõÊÇÓÉÓÚÓÐʱÐèÒª²ÉÈ¡ÓëJava¡¡µÄÆÕͨ·½·¨²»Í¬µÄÒ»ÖÖ·½·¨£¬Í¨¹ý·ÖÅä¡¡

ÄÚ´æÀ´×öһЩ¾ßÓÐC¡¡·ç¸ñµÄÊÂÇé¡£ÕâÖ÷Òª¿ÉÒÔͨ¹ý¡°¹ÌÓз½·¨¡±À´½øÐУ¬ËüÊÇ´ÓJava¡¡Àïµ÷Ó÷ǡ¡Java¡¡·½·¨µÄ¡¡

Ò»ÖÖ·½Ê½£¨¹ÌÓз½·¨µÄÎÊÌâÔÚ¸½Â¼¡¡A¡¡ÌÖÂÛ£©¡£C¡¡ºÍ¡¡C£«£«ÊÇĿǰΨһ»ñµÃ¹ÌÓз½·¨Ö§³ÖµÄÓïÑÔ¡£µ«ÓÉÓÚËüÃÇÄܵ÷¡¡

ÓÃͨ¹ýÆäËûÓïÑÔ±àдµÄ×Ó³ÌÐò£¬ËùÒÔÄܹ»ÓÐЧµØµ÷ÓÃÈκζ«Î÷¡£ÔÚ·Ç¡¡Java¡¡´úÂëÄÚ²¿£¬Ò²ÐíÄܵ÷Óá¡C¡¡µÄ¡¡

malloc£¨£©ÏµÁк¯Êý£¬ÓÃËü·ÖÅä´æ´¢¿Õ¼ä¡£¶øÇÒ³ý·Çµ÷ÓÃÁËfree£¨£©£¬·ñÔò´æ´¢¿Õ¼ä²»»áµÃµ½ÊÍ·Å£¬´Ó¶øÔì³ÉÄÚ¡¡

´æ¡°Â©¶´¡±µÄ³öÏÖ¡£µ±È»£¬free£¨£©ÊÇÒ»¸öC¡¡ºÍC£«£«º¯Êý£¬ËùÒÔÎÒÃÇÐèÒªÔÚ¡¡finalize£¨£©ÄÚ²¿µÄÒ»¸ö¹ÌÓз½·¨ÖС¡



¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡105¡¡


¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­Page¡¡107¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­

µ÷ÓÃËü¡£¡¡¡¡

¶ÁÍêÉÏÊöÎÄ×ֺ󣬴ó¼Ò»òÐíÒÑŪÇå³þÁË×Ô¼º²»±Ø¹ý¶àµØʹÓÃfinalize£¨£©¡£Õâ¸ö˼ÏëÊÇÕýÈ·µÄ£»Ëü²¢²»ÊǽøÐС¡

ÆÕͨÇå³ý¹¤×÷µÄÀíÏ볡Ëù¡£ÄÇô£¬ÆÕͨµÄÇå³ý¹¤×÷Ó¦Ôں䦽øÐÐÄØ£¿¡¡¡¡



4¡£3¡£2¡¡¡¡±ØÐëÖ´ÐÐÇå³ý¡¡¡¡



ΪÇå³ýÒ»¸ö¶ÔÏó£¬ÄǸö¶ÔÏóµÄÓû§±ØÐëÔÚÏ£Íû½øÐÐÇå³ýµÄµØµãµ÷ÓÃÒ»¸öÇå³ý·½·¨¡£ÕâÌýÆðÀ´ËƺõºÜÈÝÒ××ö¡¡

µ½£¬µ«È´Óë¡¡C£«£«¡¡¡°ÆÆ»µÆ÷¡±µÄ¸ÅÄîÉÔÓеִ¥¡£ÔÚC£«£«ÖУ¬ËùÓжÔÏ󶼻áÆÆ»µ£¨Çå³ý£©¡£»òÕß»»¾ä»°Ëµ£¬ËùÓжԡ¡

Ï󶼡°Ó¦¸Ã¡±ÆÆ»µ¡£Èô½«C£«£«¶ÔÏó´´½¨³ÉÒ»¸ö±¾µØ¶ÔÏ󣬱ÈÈçÔÚ¶ÑÕ»Öд´½¨£¨ÔÚ¡¡Java¡¡ÖÐÊDz»¿ÉÄܵģ©£¬ÄÇô¡¡

Çå³ý»òÆÆ»µ¹¤×÷¾Í»áÔÚ¡°½áÊø»¨À¨ºÅ¡±Ëù´ú±íµÄ¡¢´´½¨Õâ¸ö¶ÔÏóµÄ×÷ÓÃÓòµÄĩβ½øÐС£Èô¶ÔÏóÊÇÓÃnew¡¡´´½¨¡¡

µÄ£¨ÀàËÆÓÚ¡¡Java¡¡£©£¬ÄÇôµ±³ÌÐòÔ±µ÷ÓÃC£«£«µÄdelete¡¡ÃüÁîʱ£¨Java¡¡Ã»ÓÐÕâ¸öÃüÁ£¬¾Í»áµ÷ÓÃÏàÓ¦µÄÆÆ»µ¡¡

Æ÷¡£Èô³ÌÐòÔ±Íü¼ÇÁË£¬ÄÇôÓÀÔ¶²»»áµ÷ÓÃÆÆ»µÆ÷£¬ÎÒÃÇ×îÖյõ½µÄ½«ÊÇÒ»¸öÄڴ桰©¶´¡±£¬ÁíÍ⻹°üÀ¨¶ÔÏó¡¡

µÄÆäËû²¿·ÖÓÀÔ¶²»»áµÃµ½Çå³ý¡£¡¡¡¡

Ïà·´£¬Java¡¡²»ÔÊÐíÎÒÃÇ´´½¨±¾µØ£¨¾Ö²¿£©¶ÔÏ󡪡ªÎÞÂÛÈçºÎ¶¼ÒªÊ¹Óá¡new¡£µ«ÔÚJava¡¡ÖУ¬Ã»ÓС°delete¡±Ãü¡¡

ÁîÀ´ÊͷŶÔÏó£¬ÒòΪÀ¬»øÊÕ¼¯Æ÷»á°ïÖúÎÒÃÇ×Ô¶¯ÊÍ·Å´æ´¢¿Õ¼ä¡£ËùÒÔÈç¹ûÕ¾ÔڱȽϼò»¯µÄÁ¢³¡£¬ÎÒÃÇ¿ÉÒÔ˵¡¡

ÕýÊÇÓÉÓÚ´æÔÚÀ¬»øÊÕ¼¯»úÖÆ£¬ËùÒÔ¡¡Java¡¡Ã»ÓÐÆÆ»µÆ÷¡£È»¶ø£¬Ëæ×ÅÒÔºóѧϰµÄÉîÈ룬¾Í»áÖªµÀÀ¬»øÊÕ¼¯Æ÷µÄ´æ¡¡

ÔÚ²¢²»ÄÜÍêÈ«Ïû³ý¶ÔÆÆ»µÆ÷µÄÐèÒª£¬»òÕß˵²»ÄÜÏû³ý¶ÔÆÆ»µÆ÷´ú±íµÄÄÇÖÖ»úÖƵÄÐèÒª£¨¶øÇÒ¾ø¶Ô²»ÄÜÖ±½Óµ÷¡¡

ÓÃfinalize£¨£©£¬ËùÒÔÓ¦¾¡Á¿±ÜÃâÓÃËü£©¡£ÈôÏ£ÍûÖ´ÐгýÊÍ·Å´æ´¢¿Õ¼äÖ®ÍâµÄÆäËûijÖÖÐÎʽµÄÇå³ý¹¤×÷£¬ÈÔÈ»¡¡

±ØÐëµ÷ÓÃJava¡¡ÖеÄÒ»¸ö·½·¨¡£ËüµÈ¼ÛÓÚC£«£«µÄÆÆ»µÆ÷£¬Ö»ÊÇûºóÕß·½±ã¡£¡¡¡¡

finalize£¨£©×îÓÐÓô¦µÄµØ·½Ö®Ò»Êǹ۲ìÀ¬»øÊÕ¼¯µÄ¹ý³Ì¡£ÏÂÃæÕâ¸öÀý×ÓÏò´ó¼ÒչʾÁËÀ¬»øÊÕ¼¯Ëù¾­ÀúµÄ¹ý¡¡

³Ì£¬²¢¶ÔÇ°ÃæµÄ³ÂÊö½øÐÐÁË×ܽᡣ¡¡¡¡

¡¡¡¡

//£º¡¡Garbage¡£java¡¡¡¡

//¡¡Demonstration¡¡of¡¡the¡¡garbage¡¡¡¡

//¡¡collector¡¡and¡¡finalization¡¡¡¡

¡¡¡¡

class¡¡Chair¡¡£û¡¡¡¡

¡¡¡¡static¡¡boolean¡¡gcrun¡¡=¡¡false£»¡¡¡¡

¡¡¡¡static¡¡boolean¡¡f¡¡=¡¡false£»¡¡¡¡

¡¡¡¡static¡¡int¡¡created¡¡=¡¡0£»¡¡¡¡

¡¡¡¡static¡¡int¡¡finalized¡¡=¡¡0£»¡¡¡¡

¡¡¡¡int¡¡i£»¡¡¡¡

¡¡¡¡Chair£¨£©¡¡£û¡¡¡¡

¡¡¡¡¡¡¡¡i¡¡=¡¡£«£«created£»¡¡¡¡

¡¡¡¡¡¡¡¡if£¨created¡¡==¡¡47£©¡¡¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡System¡£out¡£println£¨¡¨Created¡¡47¡¨£©£»¡¡¡¡

¡¡¡¡£ý¡¡¡¡

¡¡¡¡protected¡¡void¡¡finalize£¨£©¡¡£û¡¡¡¡

¡¡¡¡¡¡¡¡if£¨£¡gcrun£©¡¡£û¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡gcrun¡¡=¡¡true£»¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡System¡£out¡£println£¨¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¨Beginning¡¡to¡¡finalize¡¡after¡¡¡¨¡¡£«¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡created¡¡£«¡¡¡¨¡¡Chairs¡¡have¡¡been¡¡created¡¨£©£»¡¡¡¡

¡¡¡¡¡¡¡¡£ý¡¡¡¡

¡¡¡¡¡¡¡¡if£¨i¡¡==¡¡47£©¡¡£û¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡System¡£out¡£println£¨¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¨Finalizing¡¡Chair¡¡#47£»¡¡¡¨¡¡£«¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¨Setting¡¡flag¡¡to¡¡stop¡¡Chair¡¡creation¡¨£©£»¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡f¡¡=¡¡true£»¡¡¡¡

¡¡¡¡¡¡¡¡£ý¡¡¡¡

¡¡¡¡¡¡¡¡finalized£«£«£»¡¡¡¡

¡¡¡¡¡¡¡¡if£¨finalized¡¡¡·=¡¡created£©¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡System¡£out¡£println£¨¡¡¡¡



¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡106¡¡


¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­Page¡¡108¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¨All¡¡¡¨¡¡£«¡¡finalized¡¡£«¡¡¡¨¡¡finalized¡¨£©£»¡¡¡¡

¡¡¡¡£ý¡¡¡¡

£ý¡¡¡¡

¡¡¡¡

public¡¡class¡¡Garbage¡¡£û¡¡¡¡

¡¡¡¡public¡¡static¡¡void¡¡main£¨String£§£§¡¡args£©¡¡£û¡¡¡¡

¡¡¡¡¡¡¡¡if£¨args¡£length¡¡==¡¡0£©¡¡£û¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡System¡£err¡£println£¨¡¨Usage£º¡¡n¡¨¡¡£«¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¨java¡¡Garbage¡¡beforen¡¡¡¡or£ºn¡¨¡¡£«¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¨java¡¡Garbage¡¡after¡¨£©£»¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡return£»¡¡¡¡

¡¡¡¡¡¡¡¡£ý¡¡¡¡

¡¡¡¡¡¡¡¡while¡¡£¨£¡Chair¡£f£©¡¡£û¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡new¡¡Chair£¨£©£»¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡new¡¡String£¨¡¨To¡¡take¡¡up¡¡space¡¨£©£»¡¡¡¡

¡¡¡¡¡¡¡¡£ý¡¡¡¡

¡¡¡¡¡¡¡¡System¡£out¡£println£¨¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¨After¡¡all¡¡Chairs¡¡have¡¡been¡¡created£ºn¡¨¡¡£«¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¨total¡¡created¡¡=¡¡¡¨¡¡£«¡¡Chair¡£created¡¡£«¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¨£»¡¡total¡¡finalized¡¡=¡¡¡¨¡¡£«¡¡Chair¡£finalized£©£»¡¡¡¡

¡¡¡¡¡¡¡¡if£¨args£§0£§¡£equals£¨¡¨before¡¨£©£©¡¡£û¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡System¡£out¡£println£¨¡¨gc£¨£©£º¡¨£©£»¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡System¡£gc£¨£©£»¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡System¡£out¡£println£¨¡¨runFinalization£¨£©£º¡¨£©£»¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡System¡£runFinalization£¨£©£»¡¡¡¡

¡¡¡¡¡¡¡¡£ý¡¡¡¡

¡¡¡¡¡¡¡¡System¡£out¡£println£¨¡¨bye£¡¡¨£©£»¡¡¡¡

¡¡¡¡¡¡¡¡if£¨args£§0£§¡£equals£¨¡¨after¡¨£©£©¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡System¡£runFinalizersOnExit£¨true£©£»¡¡¡¡

¡¡¡¡£ý¡¡¡¡

£ý¡¡///£º~¡¡¡¡

¡¡¡¡

ÉÏÃæÕâ¸ö³ÌÐò´´½¨ÁËÐí¶àChair¡¡¶ÔÏ󣬶øÇÒÔÚÀ¬»øÊÕ¼¯Æ÷¿ªÊ¼ÔËÐкóµÄijЩʱºò£¬³ÌÐò»áÍ£Ö¹´´½¨Chair¡£¡¡

ÓÉÓÚÀ¬»øÊÕ¼¯Æ÷¿ÉÄÜÔÚÈκÎʱ¼äÔËÐУ¬ËùÒÔÎÒÃDz»ÄÜ׼ȷ֪µÀËüÔÚºÎʱÆô¶¯¡£Òò´Ë£¬³ÌÐòÓÃÒ»¸öÃûΪgcrun¡¡

µÄ±ê¼ÇÀ´Ö¸³öÀ¬»øÊÕ¼¯Æ÷ÊÇ·ñÒѾ­¿ªÊ¼ÔËÐС£ÀûÓõڶþ¸ö±ê¼Ç¡¡f£¬Chair¡¡¿É¸æËß¡¡main£¨£©ËüӦֹͣ¶ÔÏóµÄÉú¡¡

³É¡£ÕâÁ½¸ö±ê¼Ç¶¼ÊÇÔÚ¡¡finalize£¨£©ÄÚ²¿ÉèÖõģ¬Ëüµ÷ÓÃÓÚÀ¬»øÊÕ¼¯Æڼ䡣¡¡¡¡

ÁíÁ½¸ö¡¡static¡¡±äÁ¿¡ª¡ªcreated¡¡ÒÔ¼°finalized¡ª¡ª·Ö±ðÓÃÓÚ¸ú×ÙÒÑ´´½¨µÄ¶ÔÏóÊýÁ¿ÒÔ¼°À¬»øÊÕ¼¯Æ÷ÒѽøÐС¡

ÍêÊÕβ¹¤×÷µÄ¶ÔÏóÊýÁ¿¡£×îºó£¬Ã¿¸ö¡¡Chair¡¡¶¼ÓÐËü×Ô¼ºµÄ£¨·Ç¡¡static£©int¡¡i£¬ËùÒÔÄܸú×ÙÁ˽âËü¾ßÌåµÄ±à¡¡

ºÅÊǶàÉÙ¡£±àºÅΪ47¡¡µÄChair¡¡½øÐÐÍêÊÕβ¹¤×÷ºó£¬±ê¼Ç»áÉèΪtrue¡¡£¬×îÖÕ½áÊøChair¡¡¶ÔÏóµÄ´´½¨¹ý³Ì¡£¡¡¡¡

ËùÓÐÕâЩ¶¼ÔÚmain£¨£©µÄÄÚ²¿½øÐСª¡ªÔÚÏÂÃæÕâ¸öÑ­»·À¡¡¡¡

¡¡¡¡

while£¨£¡Chair¡£f£©¡¡£û¡¡¡¡

new¡¡Chair£¨£©£»¡¡¡¡

new¡¡String£¨¡¨To¡¡take¡¡up¡¡space¡¨£©£»¡¡¡¡

£ý¡¡¡¡

¡¡¡¡

´ó¼Ò¿ÉÄÜ»áÒÉ»óÕâ¸öÑ­»·Ê²Ã´Ê±ºò»áÍ£ÏÂÀ´£¬ÒòΪÄÚ²¿Ã»ÓÐÈκθı䡡Chair¡£f¡¡ÖµµÄÓï¾ä¡£È»¶ø£¬finalize£¨£©¡¡

½ø³Ì»á¸Ä±äÕâ¸öÖµ£¬Ö±ÖÁ×îÖÕ¶Ô±àºÅ¡¡47¡¡µÄ¶ÔÏó½øÐÐÊÕβ´¦Àí¡£¡¡¡¡

ÿ´ÎÑ­»·¹ý³ÌÖд´½¨µÄ¡¡String¡¡¶ÔÏóÖ»ÊÇÊôÓÚ¶îÍâµÄÀ¬»ø£¬ÓÃÓÚÎüÒýÀ¬»øÊÕ¼¯Æ÷¡ª¡ªÒ»µ©À¬»øÊÕ¼¯Æ÷¶Ô¿ÉÓÃÄÚ¡¡

´æµÄÈÝÁ¿¸Ðµ½¡°½ôÕŲ»°²¡±£¬¾Í»á¿ªÊ¼¹Ø×¢Ëü¡£¡¡¡¡

ÔËÐÐÕâ¸ö³ÌÐòµÄʱºò£¬ÌṩÁËÒ»¸öÃüÁîÐÐ×Ô±äÁ¿¡°before¡±»òÕß¡°after¡±¡£ÆäÖУ¬¡°before¡±×Ô±äÁ¿»áµ÷Óá¡

System¡£gc£¨£©·½·¨£¨Ç¿ÖÆÖ´ÐÐÀ¬»øÊÕ¼¯Æ÷£©£¬Í¬Ê±»¹»áµ÷Óá¡System¡£runFinalization£¨£©·½·¨£¬ÒÔ±ã½øÐÐÊÕβ¡¡



¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡107¡¡


¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­Page¡¡109¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­

¹¤×÷¡£ÕâЩ·½·¨¶¼¿ÉÔÚ¡¡Java¡¡1¡£0¡¡ÖÐʹÓ㬵«Í¨¹ýʹÓá°after¡±×Ô±äÁ¿¶øµ÷ÓõÄrunFinalizersOnExit£¨£©·½¡¡

·¨È´Ö»ÓÐJava¡¡1¡£1¡¡¼°ºóÐø°æ±¾ÌṩÁ˶ÔËüµÄÖ§³Ö£¨×¢ÊÍ¢Û£©¡£×¢Òâ¿ÉÔÚ³ÌÐòÖ´ÐеÄÈκÎʱºòµ÷ÓÃÕâ¸ö·½·¨£¬¡¡

¶øÇÒÊÕβ³ÌÐòµÄÖ´ÐÐÓëÀ¬»øÊÕ¼¯Æ÷ÊÇ·ñÔËÐÐÊÇÎ޹صġ£¡¡¡¡

¡¡¡¡

¢Û£º²»ÐÒµÄÊÇ£¬Java¡¡1¡£0¡¡²ÉÓõÄÀ¬»øÊÕ¼¯Æ÷·½°¸ÓÀÔ¶²»ÄÜÕýÈ·µØµ÷ÓÃfinalize£¨£©¡£Òò´Ë£¬finalize£¨£©·½·¨¡¡

¡¡£¨ÌرðÊÇÄÇЩÓÃÓڹرÕÎļþµÄ£©ÊÂʵÉϾ­³£¶¼²»»áµÃµ½µ÷Óá£ÏÖÔÚÓÐЩÎÄÕÂÉù³ÆËùÓÐÊÕβģ¿é¶¼»áÔÚ³ÌÐòÍË¡¡

³öµÄʱºòµÃµ½µ÷Ó᪡ª¼´Ê¹µ½³ÌÐòÖÐÖ¹µÄʱºò£¬À¬»øÊÕ¼¯Æ÷ÈÔδÕë¶ÔÄÇЩ¶ÔÏó²ÉÈ¡Ðж¯¡£Õâ²¢²»ÊÇÕæʵµÄÇé¡¡

¿ö£¬ËùÒÔÎÒÃǸù±¾²»ÄÜÖ¸Íûfinalize£¨£©ÄÜΪËùÓжÔÏó¶øµ÷Óá£ÌرðµØ£¬finalize£¨£©ÔÚJava¡¡1¡£0¡¡ÀXºõºÁÎÞ¡¡

Óô¦¡£¡¡¡¡

¡¡¡¡

Ç°ÃæµÄ³ÌÐòÏòÎÒÃǽÒʾ³ö£ºÔÚ¡¡Java¡¡1¡£1¡¡ÖУ¬ÊÕβģ¿é¿Ï¶¨»áÔËÐÐÕâÒ»ÐíŵÒѳÉΪÏÖʵ¡ª¡ªµ«Ç°ÌáÊÇÎÒÃÇÃ÷È·¡¡

µØÇ¿ÖÆËü²ÉÈ¡ÕâÒ»²Ù×÷¡£ÈôʹÓÃÒ»¸ö²»ÊÇ¡°before¡±»ò¡°after¡±µÄ×Ô±äÁ¿£¨Èç¡°none¡¡¡±£©£¬ÄÇôÁ½¸öÊÕβ¹¤¡¡

×÷¶¼²»»á½øÐУ¬¶øÇÒÎÒÃÇ»áµÃµ½ÏóÏÂÃæÕâÑùµÄÊä³ö£º¡¡¡¡

Created¡¡47¡¡¡¡

Beginning¡¡to¡¡finalize¡¡after¡¡8694¡¡Chairs¡¡have¡¡been¡¡created¡¡¡¡

Finalizing¡¡Chair¡¡#47£»¡¡Setting¡¡flag¡¡to¡¡stop¡¡Chair¡¡creation¡¡¡¡

After¡¡all¡¡Chairs¡¡have¡¡been¡¡created£º¡¡¡¡

total¡¡created¡¡=¡¡9834£»¡¡total¡¡finalized¡¡=¡¡108¡¡¡¡

bye£¡¡¡¡¡

¡¡¡¡

Òò´Ë£¬µ½³ÌÐò½áÊøµÄʱºò£¬²¢·ÇËùÓÐÊÕβģ¿é¶¼»áµÃµ½µ÷Óã¨×¢Ê͢ܣ©¡£ÎªÇ¿ÖƽøÐÐÊÕβ¹¤×÷£¬¿ÉÏȵ÷Óá¡

System¡£gc£¨£©£¬ÔÙµ÷ÓÃSystem¡£runFinalization£¨£©¡£ÕâÑù¿ÉÇå³ýµ½Ä¿Ç°ÎªÖ¹Ã»ÓÐʹÓõÄËùÓжÔÏó¡£ÕâÑù×öÒ»¡¡

¸öÉÔÏÔÆæ¹ÖµÄµØ·½ÊÇÔÚµ÷ÓÃrunFinalization£¨£©Ö®Ç°µ÷ÓÃgc£¨£©£¬Õâ¿´ÆðÀ´ËƺõÓë¡¡Sun¡¡¹«Ë¾µÄÎĵµËµÃ÷ÓÐЩµÖ¡¡

´¥£¬ËüÐû³ÆÊ×ÏÈÔËÐÐÊÕβģ¿é£¬ÔÙÊÍ·Å´æ´¢¿Õ¼ä¡£È»¶ø£¬ÈôÔÚÕâÀïÊ×Ïȵ÷ÓÃrunFinalization£¨£©£¬ÔÙµ÷Óá¡

gc£¨£©£¬ÊÕβģ¿é¸ù±¾²»»áÖ´ÐС£¡¡¡¡

¡¡¡¡

¢Ü£ºµ½Äã¶Áµ½±¾Êéʱ£¬ÓÐЩJava¡¡ÐéÄâ»ú£¨JVM£©¿ÉÄÜÒÑ¿ªÊ¼±íÏÖ³ö²»Í¬µÄÐÐΪ¡£¡¡¡¡

¡¡¡¡

Õë¶ÔËùÓжÔÏó£¬Java¡¡1¡£1¡¡ÓÐʱ֮ËùÒÔ»áĬÈÏΪÌø¹ýÊÕβ¹¤×÷£¬ÊÇÓÉÓÚËüÈÏΪÕâÑù×öµÄ¿ªÏúÌ«´ó¡£²»¹ÜÓÃÄÄÖÖ¡¡

·½·¨Ç¿ÖƽøÐÐÀ¬»øÊÕ¼¯£¬¶¼¿ÉÄÜ×¢Òâµ½±ÈûÓжîÍâÊÕβ¹¤×÷ʱ½Ï³¤µÄʱ¼äÑÓ³Ù¡£¡¡¡¡



4¡£4¡¡³ÉÔ±³õʼ»¯¡¡¡¡



Java¡¡¾¡×Ô¼ºµÄÈ«Á¦±£Ö¤ËùÓбäÁ¿¶¼ÄÜÔÚʹÓÃÇ°µÃµ½ÕýÈ·µÄ³õʼ»¯¡£Èô±»¶¨Òå³ÉÏà¶ÔÓÚÒ»¸ö·½·¨µÄ¡°¾Ö²

·µ»ØĿ¼ ÉÏÒ»Ò³ ÏÂÒ»Ò³ »Øµ½¶¥²¿ ÔÞ£¨0£© ²È£¨1£©

Äã¿ÉÄÜϲ»¶µÄ