À¬»øÇåÀíÊÆÔÚ±ØÐСª¡ªJavaÀ¬»øÊÕ¼¯Ëã·¨(2)
6.ÈçºÎÏû³ýÄÚ´æй©
ËäÈ»JavaÐéÄâ»ú(JVM)¼°ÆäÀ¬»øÊÕ¼¯Æ÷(garbage collector£¬GC)¸ºÔð¹ÜÀí´ó¶àÊýµÄÄÚ´æÈÎÎñ£¬JavaÈí¼þ³ÌÐòÖл¹ÊÇÓпÉÄܳöÏÖÄÚ´æй©¡£Êµ¼ÊÉÏ£¬ÕâÔÚ´óÐÍÏîÄ¿ÖÐÊÇÒ»¸ö³£¼ûµÄÎÊÌâ¡£±ÜÃâÄÚ´æй©µÄµÚÒ»²½ÊÇҪŪÇå³þËüÊÇÈçºÎ·¢ÉúµÄ¡£±¾ÎĽéÉÜÁ˱àдJava´úÂëµÄһЩ³£¼ûµÄÄÚ´æй©ÏÝÚ壬ÒÔ¼°±àд²»Ð¹Â©´úÂëµÄһЩ×î¼Ñʵ¼ù¡£Ò»µ©·¢ÉúÁËÄÚ´æй©£¬ÒªÖ¸³öÔì³Éй©µÄ´úÂëÊǷdz£À§Äѵġ£Òò´Ë±¾ÎÄ»¹½éÉÜÁËÒ»ÖÖй¤¾ß£¬ÓÃÀ´Õï¶Ïй©²¢Ö¸³ö¸ù±¾ÔÒò¡£¸Ã¹¤¾ßµÄ¿ªÏú·Ç³£Ð¡£¬Òò´Ë¿ÉÒÔʹÓÃËüÀ´Ñ°ÕÒ´¦ÓÚÉú²úÖеÄϵͳµÄÄÚ´æй©¡£
À¬»øÊÕ¼¯Æ÷µÄ×÷ÓÃ
ËäÈ»À¬»øÊÕ¼¯Æ÷´¦ÀíÁË´ó¶àÊýÄÚ´æ¹ÜÀíÎÊÌ⣬´Ó¶øʹ±à³ÌÈËÔ±µÄÉú»î±äµÃ¸üÇáËÉÁË£¬µ«ÊDZà³ÌÈËÔ±»¹ÊÇ¿ÉÄÜ·¸´í¶øµ¼Ö³öÏÖÄÚ´æÎÊÌâ¡£¼òµ¥µØ˵£¬GCÑ»·µØ¸ú×ÙËùÓÐÀ´×Ô¡°¸ù¡±¶ÔÏó(¶ÑÕ»¶ÔÏó¡¢¾²Ì¬¶ÔÏó¡¢JNI¾ä±úÖ¸ÏòµÄ¶ÔÏó£¬ÖîÈç´ËÀà)µÄÒýÓ㬲¢½«ËùÓÐËüËùÄܵ½´ïµÄ¶ÔÏó±ê¼ÇΪ»î¶¯µÄ¡£³ÌÐòÖ»¿ÉÒÔ²Ù×ÝÕâЩ¶ÔÏó;ÆäËûµÄ¶ÔÏ󶼱»É¾³ýÁË¡£ÒòΪGCʹ³ÌÐò²»¿ÉÄܵ½´ïÒѱ»É¾³ýµÄ¶ÔÏó£¬Õâô×ö¾ÍÊÇ°²È«µÄ¡£
ËäÈ»ÄÚ´æ¹ÜÀí¿ÉÒÔ˵ÊÇ×Ô¶¯»¯µÄ£¬µ«ÊÇÕâ²¢²»ÄÜʹ±à³ÌÈËÔ±ÃâÊÜ˼¿¼ÄÚ´æ¹ÜÀíÎÊÌâÖ®¿à¡£ÀýÈ磬·ÖÅä(ÒÔ¼°ÊÍ·Å)ÄÚ´æ×Ü»áÓпªÏú£¬ËäÈ»ÕâÖÖ¿ªÏú¶Ô±à³ÌÈËÔ±À´ËµÊDz»¿É¼ûµÄ¡£´´½¨ÁËÌ«¶à¶ÔÏóµÄ³ÌÐò½«»á±ÈÍê³ÉͬÑùµÄ¹¦Äܶø´´½¨µÄ¶ÔÏóÈ´±È½ÏÉٵijÌÐò¸üÂýһЩ(ÔÚÆäËûÌõ¼þÏàͬµÄÇé¿öÏÂ)¡£
¶øÇÒ£¬Óë±¾ÎĸüΪÃÜÇÐÏà¹ØµÄÊÇ£¬Èç¹ûÍü¼Ç¡°ÊÍ·Å¡±ÏÈÇ°·ÖÅäµÄÄڴ棬¾Í¿ÉÄÜÔì³ÉÄÚ´æй©¡£Èç¹û³ÌÐò±£Áô¶ÔÓÀÔ¶²»ÔÙʹÓõĶÔÏóµÄÒýÓã¬ÕâЩ¶ÔÏ󽫻áÕ¼Óò¢ºÄ¾¡Äڴ棬ÕâÊÇÒòΪ×Ô¶¯»¯µÄÀ¬»øÊÕ¼¯Æ÷ÎÞ·¨Ö¤Ã÷ÕâЩ¶ÔÏ󽫲»ÔÙʹÓá£ÕýÈçÎÒÃÇÏÈÇ°Ëù˵µÄ£¬Èç¹û´æÔÚÒ»¸ö¶Ô¶ÔÏóµÄÒýÓ㬶ÔÏó¾Í±»¶¨ÒåΪ»î¶¯µÄ£¬Òò´Ë²»ÄÜɾ³ý¡£ÎªÁËÈ·±£ÄÜ»ØÊÕ¶ÔÏóÕ¼ÓõÄÄڴ棬±à³ÌÈËÔ±±ØÐëÈ·±£¸Ã¶ÔÏó²»Äܵ½´ï¡£Õâͨ³£ÊÇͨ¹ý½«¶ÔÏó×Ö¶ÎÉèÖÃΪnull»òÕß´Ó¼¯ºÏ(collection)ÖÐÒƳý¶ÔÏó¶øÍê³ÉµÄ¡£µ«ÊÇ£¬×¢Ò⣬µ±¾Ö²¿±äÁ¿²»ÔÙʹÓÃʱ£¬Ã»ÓбØÒª½«ÆäÏÔʽµØÉèÖÃΪnull¡£¶ÔÕâЩ±äÁ¿µÄÒýÓý«Ëæ×Å·½·¨µÄÍ˳ö¶ø×Ô¶¯Çå³ý¡£
¸ÅÀ¨µØ˵£¬Õâ¾ÍÊÇÄÚ´æÍйÜÓïÑÔÖеÄÄÚ´æй©²úÉúµÄÖ÷ÒªÔÒò£º±£ÁôÏÂÀ´È´ÓÀÔ¶²»ÔÙʹÓõĶÔÏóÒýÓá£
µäÐÍй©
¼ÈÈ»ÎÒÃÇÖªµÀÁËÔÚJavaÖÐȷʵÓпÉÄÜ·¢ÉúÄÚ´æй©£¬¾ÍÈÃÎÒÃÇÀ´¿´Ò»Ð©µäÐ͵ÄÄÚ´æй©¼°ÆäÔÒò¡£
È«¾Ö¼¯ºÏ
ÔÚ´óµÄÓ¦ÓóÌÐòÖÐÓÐijÖÖÈ«¾ÖµÄÊý¾Ý´¢´æ¿âÊǺܳ£¼ûµÄ£¬ÀýÈçÒ»¸öJNDIÊ÷»òÒ»¸ö»á»°±í¡£ÔÚÕâЩÇé¿öÏ£¬±ØÐë×¢Òâ¹ÜÀí´¢´æ¿âµÄ´óС¡£±ØÐëÓÐijÖÖ»úÖÆ´Ó´¢´æ¿âÖÐÒƳý²»ÔÙÐèÒªµÄÊý¾Ý¡£
Õâ¿ÉÄÜÓжàÖÖ·½·¨£¬µ«ÊÇ×î³£¼ûµÄÒ»ÖÖÊÇÖÜÆÚÐÔÔËÐеÄijÖÖÇå³ýÈÎÎñ¡£¸ÃÈÎÎñ½«ÑéÖ¤´¢´æ¿âÖеÄÊý¾Ý£¬²¢ÒƳýÈκβ»ÔÙÐèÒªµÄÊý¾Ý¡£
ÁíÒ»ÖÖ¹ÜÀí´¢´æ¿âµÄ·½·¨ÊÇʹÓ÷´ÏòÁ´½Ó(referrer)¼ÆÊý¡£È»ºó¼¯ºÏ¸ºÔðͳ¼Æ¼¯ºÏÖÐÿ¸öÈë¿ÚµÄ·´ÏòÁ´½ÓµÄÊýÄ¿¡£ÕâÒªÇó·´ÏòÁ´½Ó¸æËß¼¯ºÏºÎʱ»áÍ˳öÈë¿Ú¡£µ±·´ÏòÁ´½ÓÊýĿΪÁãʱ£¬¸ÃÔªËؾͿÉÒÔ´Ó¼¯ºÏÖÐÒƳýÁË¡£
»º´æ
»º´æÊÇÒ»ÖÖÊý¾Ý½á¹¹£¬ÓÃÓÚ¿ìËÙ²éÕÒÒѾִÐеIJÙ×÷µÄ½á¹û¡£Òò´Ë£¬Èç¹ûÒ»¸ö²Ù×÷Ö´ÐÐÆðÀ´ºÜÂý£¬¶ÔÓÚ³£ÓõÄÊäÈëÊý¾Ý£¬¾Í¿ÉÒÔ½«²Ù×÷µÄ½á¹û»º´æ£¬²¢ÔÚÏ´ε÷ÓøòÙ×÷ʱʹÓûº´æµÄÊý¾Ý¡£
»º´æͨ³£¶¼ÊÇÒÔ¶¯Ì¬·½Ê½ÊµÏֵģ¬ÆäÖÐеĽá¹ûÊÇÔÚÖ´ÐÐʱÌí¼Óµ½»º´æÖеġ£µäÐ͵ÄËã·¨ÊÇ£º
¼ì²é½á¹ûÊÇ·ñÔÚ»º´æÖУ¬Èç¹ûÔÚ£¬¾Í·µ»Ø½á¹û¡£
Èç¹û½á¹û²»ÔÚ»º´æÖУ¬¾Í½øÐмÆËã¡£
½«¼ÆËã³öÀ´µÄ½á¹ûÌí¼Óµ½»º´æÖУ¬ÒÔ±ãÒÔºó¶Ô¸Ã²Ù×÷µÄµ÷ÓÿÉÒÔʹÓá£
¸ÃËã·¨µÄÎÊÌâ(»òÕß˵ÊÇDZÔÚµÄÄÚ´æй©)³öÔÚ×îºóÒ»²½¡£Èç¹ûµ÷ÓøòÙ×÷ʱÓÐÏ൱¶àµÄ²»Í¬ÊäÈ룬¾Í½«ÓÐÏ൱¶àµÄ½á¹û´æ´¢ÔÚ»º´æÖС£ºÜÃ÷ÏÔÕâ²»ÊÇÕýÈ·µÄ·½·¨¡£
ΪÁËÔ¤·ÀÕâÖÖ¾ßÓÐDZÔÚÆÆ»µÐÔµÄÉè¼Æ£¬³ÌÐò±ØÐëÈ·±£¶ÔÓÚ»º´æËùʹÓõÄÄÚ´æÈÝÁ¿ÓÐÒ»¸öÉÏÏÞ¡£Òò´Ë£¬¸üºÃµÄËã·¨ÊÇ£º
¼ì²é½á¹ûÊÇ·ñÔÚ»º´æÖУ¬Èç¹ûÔÚ£¬¾Í·µ»Ø½á¹û¡£
Èç¹û½á¹û²»ÔÚ»º´æÖУ¬¾Í½øÐмÆËã¡£
Èç¹û»º´æËùÕ¼µÄ¿Õ¼ä¹ý´ó£¬¾ÍÒƳý»º´æ×î¾ÃµÄ½á¹û¡£
½«¼ÆËã³öÀ´µÄ½á¹ûÌí¼Óµ½»º´æÖУ¬ÒÔ±ãÒÔºó¶Ô¸Ã²Ù×÷µÄµ÷ÓÿÉÒÔʹÓá£
ͨ¹ýʼÖÕÒƳý»º´æ×î¾ÃµÄ½á¹û£¬ÎÒÃÇʵ¼ÊÉϽøÐÐÁËÕâÑùµÄ¼ÙÉ裺ÔÚ½«À´£¬±ÈÆ𻺴æ×î¾ÃµÄÊý¾Ý£¬×î½üÊäÈëµÄÊý¾Ý¸üÓпÉÄÜÓõ½¡£Õâͨ³£ÊÇÒ»¸ö²»´íµÄ¼ÙÉè¡£
ÐÂËã·¨½«È·±£»º´æµÄÈÝÁ¿´¦ÓÚÔ¤¶¨ÒåµÄÄڴ淶Χ֮ÄÚ¡£È·Çеķ¶Î§¿ÉÄܺÜÄѼÆË㣬ÒòΪ»º´æÖеĶÔÏóÔÚ²»¶Ï±ä»¯£¬¶øÇÒËüÃǵÄÒýÓðüÂÞÍòÏó¡£Îª»º´æÉèÖÃÕýÈ·µÄ´óСÊÇÒ»Ïî·Ç³£¸´ÔÓµÄÈÎÎñ£¬ÐèÒª½«ËùʹÓõÄÄÚ´æÈÝÁ¿Óë¼ìË÷Êý¾ÝµÄËٶȼÓÒÔƽºâ¡£
½â¾öÕâ¸öÎÊÌâµÄÁíÒ»ÖÖ·½·¨ÊÇʹÓÃjava.lang.ref.SoftReferenceÀà¸ú×Ù»º´æÖеĶÔÏó¡£ÕâÖÖ·½·¨±£Ö¤ÕâЩÒýÓÃÄܹ»±»ÒƳý£¬Èç¹ûÐéÄâ»úµÄÄÚ´æÓþ¡¶øÐèÒª¸ü¶à¶ÑµÄ»°¡£
ClassLoader
Java ClassLoader½á¹¹µÄʹÓÃΪÄÚ´æй©ÌṩÁËÐí¶à¿É³ËÖ®»ú¡£ÕýÊǸýṹ±¾ÉíµÄ¸´ÔÓÐÔʹClassLoaderÔÚÄÚ´æй©·½Ãæ´æÔÚÈç´Ë¶àµÄÎÊÌâ¡£ ClassLoaderµÄÌرðÖ®´¦ÔÚÓÚËü²»½öÉæ¼°¡°³£¹æ¡±µÄ¶ÔÏóÒýÓ㬻¹Éæ¼°Ôª¶ÔÏóÒýÓ㬱ÈÈ磺×ֶΡ¢·½·¨ºÍÀà¡£ÕâÒâζ×ÅÖ»ÒªÓжÔ×ֶΡ¢·½·¨¡¢Àà»ò ClassLoaderµÄ¶ÔÏóµÄÒýÓã¬ClassLoader¾Í»áפÁôÔÚJVMÖС£ÒòΪClassLoader±¾Éí¿ÉÒÔ¹ØÁªÐí¶àÀ༰Æ侲̬×ֶΣ¬ËùÒÔ¾ÍÓÐÐí¶àÄڴ汻й©ÁË¡£
È·¶¨Ð¹Â©µÄλÖÃ
ͨ³£·¢ÉúÄÚ´æй©µÄµÚÒ»¸ö¼£ÏóÊÇ£ºÔÚÓ¦ÓóÌÐòÖгöÏÖÁËOutOfMemoryError¡£Õâͨ³£·¢ÉúÔÚÄú×î²»Ô¸ÒâËü·¢ÉúµÄÉú²ú»·¾³ÖУ¬´Ëʱ¼¸ºõ²»ÄܽøÐе÷ÊÔ¡£ÓпÉÄÜÊÇÒòΪ²âÊÔ»·¾³ÔËÐÐÓ¦ÓóÌÐòµÄ·½Ê½ÓëÉú²úϵͳ²»ÍêÈ«Ïàͬ£¬Òò¶øµ¼ÖÂй©ֻ³öÏÖÔÚÉú²úÖС£ÔÚÕâÖÖÇé¿öÏ£¬ÐèҪʹÓÃһЩ¿ªÏú½ÏµÍµÄ¹¤¾ßÀ´¼à¿ØºÍ²éÕÒÄÚ´æй©¡£»¹ÐèÒªÄܹ»ÎÞÐèÖØÆôϵͳ»òÐ޸ĴúÂë¾Í¿ÉÒÔ½«ÕâЩ¹¤¾ßÁ¬½Óµ½ÕýÔÚÔËÐеÄϵͳÉÏ¡£¿ÉÄÜ×îÖØÒªµÄÊÇ£¬µ±½øÐзÖÎöʱ£¬ÐèÒªÄܹ»¶Ï¿ª¹¤¾ß¶ø±£³Öϵͳ²»ÊܸÉÈÅ¡£
ËäÈ»OutOfMemoryErrorͨ³£¶¼ÊÇÄÚ´æй©µÄÐźţ¬µ«ÊÇÒ²ÓпÉÄÜÓ¦ÓóÌÐòȷʵÕýÔÚʹÓÃÕâô¶àµÄÄÚ´æ;¶ÔÓÚºóÕߣ¬»òÕß±ØÐëÔö¼ÓJVM¿ÉÓõĶѵÄÊýÁ¿£¬»òÕ߶ÔÓ¦ÓóÌÐò½øÐÐijÖÖ¸ü¸Ä£¬Ê¹ËüʹÓýÏÉÙµÄÄÚ´æ¡£µ«ÊÇ£¬ÔÚÐí¶àÇé¿öÏ£¬OutOfMemoryError¶¼ÊÇÄÚ´æй©µÄÐźš£Ò»ÖÖ²éÃ÷·½·¨ÊDz»¼ä¶ÏµØ¼à¿ØGCµÄ»î¶¯£¬È·¶¨ÄÚ´æʹÓÃÁ¿ÊÇ·ñËæ×Åʱ¼äÔö¼Ó¡£Èç¹ûȷʵÈç´Ë£¬¾Í¿ÉÄÜ·¢ÉúÁËÄÚ´æй©¡£
ÍƼöÐÅÏ¢
- ÔÝÎ޼Ǽ
ÈÈÃÅÐÅÏ¢
- nohup: redirecting stderr to stdou....
- ʹÓÃlog_formatΪNginx·þÎñÆ÷ÉèÖøüÏêϸµÄÈÕÖ¾¸ñʽ
- jquery easyUI--dataGrid-Json
- [Ô´´]·ÂGoogle Reader¡¢ÐÂÀË΢²©¡¢ÌÚѶ΢²©µ....
- ÀûÓÃKeepalived+mysql¹¹½¨¸ß¿ÉÓÃMySQLË«Ö÷×Ô¶....
- Nginx+keepalivedʵÏÖ¸ºÔؾùºâºÍË«»úÈȱ¸¸ß¿ÉÓÃ
- jqueryʵÏÖÒ³Ãæ¼ÓÔؽø¶ÈÌõ
- Rolling cURL: PHP²¢·¢×î¼Ñʵ¼ù
- codeigniter ·ÓÉÖÕ¼«ÓÅ»¯(url rewrite)
- linuxÏÂÉèÖÃsshÎÞÃÜÂëµÇ¼
×î½ü¸üÐÂ
- java urlÖØд¼¼Êõ(UrlReWriter)
- [ת]JavaµÄÊý×飨Array£©¡¢Vector¡¢ArrayLis....
- jsp»·¾³ÏÂajaxÂÒÂëÎÊÌâµÄ½â¾ö
- JSP¼¼Êõ Ö¸Áî ÂÒÂëÎÊÌâ ÔËÐÐÔÀíºÍ¾Å´óÒþʽ¶ÔÏó web¿ª·¢µÄË....
- JAVA ˮӡ ͼƬ ÎÄ×Ö
- java¶þ½øÖÆ£¬ÔÂë¡¢·´Âë¡¢²¹Â롢λÔËËã
- Java WebÓ¦ÓÃÆô¶¯¼ä¸ôÖ´ÐеijÌÐò
- jspÉú³ÉxmlÎļþʾÀý
- javaÖÐÀà±äÁ¿¡¢Àà·½·¨¡¢ÊµÀý±äÁ¿¡¢ÊµÀý·½·¨
- JSPÒ³ÃæµÄÎåÖÖÌøת·½·¨
ÆÀÂÛ