·¢²©ÎÄ
Welcome To My Paradise

http://blog.chinaunix.net/space.php?uid=20055722

   
¸öÈË×ÊÁÏ
  • ²©¿Í·ÃÎÊ£º200230
  • ²©ÎÄÊýÁ¿£º87
  • ²©¿Í»ý·Ö£º2000
  • ²©¿ÍµÈ¼¶£º´óξ
  • ×¢²áʱ¼ä£º2005-08-01 09:24:55
¶©ÔÄÎҵIJ©¿Í
  • ¶©ÔÄ
  • ¶©Ôĵ½Ïʹû
  • ¶©Ôĵ½×¥Ïº
  • ¶©Ôĵ½Google
×ÖÌå´óС£º´ó ÖРС²©ÎÄ
·ÖÀࣺ C/C++/Java


ÔÚJava³ÌÐòÉè¼ÆÖУ¬ÄÚ´æµÄÉêÇë¡¢·ÖÅä¡¢ÊͷŶ¼ÓÉJVM¸ºÔðÍê³É£¬Òò´Ë¿ª·¢ÈËÔ±¾ÍʡȥÁËÕⲿ·Ö¹¤×÷£¬²»¹ýÕâÒ²Òâζ×ÅËù¿ª·¢µÄÓ¦Óò»ÊÇ×îÓŵġ£¿ª·¢ÈËÔ±ÓбØÒª¶ÔJavaÓ¦Óÿª·¢ÖÐÓëÄÚ´æ¹ÜÀíÏà¹ØµÄ¼¼Êõ×öÒ»¶¨µÄÁ˽⡣

      À¬»ø»ØÊÕ£¨Garbage Collection£©ÊÇJava³ÌÐòÉè¼ÆÖÐÄÚ´æ¹ÜÀíµÄºËÐĸÅÄÄÇôÔÚJVMÔËÐл·¾³ÖÐʲô¶ÔÏóÊÇÀ¬»øÄØ£¿

¶¨ÒåÈçÏ£ºÒ»¸ö¶ÔÏó´´½¨ºó±»·ÅÖÃÔÚJVMµÄ¶ÔÄڴ棨heap£©ÖУ¬µ±ÓÀÔ¶²»ÔÙÒýÓÃÕâ¸ö¶ÔÏóʱ£¬Ëü½«±»JVMÔÚ¶ÔÄÚ´æÖлØÊÕ¡£±»´´½¨µÄ¶ÔÏó²»ÄÜÔÙÉú£¬Í¬Ê±Ò²Ã»Óа취ͨ¹ý³ÌÐòÓï¾äÊÍ·ÅËüÃÇ¡£

ÎÒÃÇÒ²¿ÉÒÔÕâÑù¶¨Ò壺µ±¶ÔÏóÔÚJVMÔËÐпռäÖÐÎÞ·¨Í¨¹ý¸ù¼¯ºÏ£¨Root set£©µ½´ïʱ£¬Õâ¸ö¶ÔÏó¾Í±»³ÆÎªÀ¬»ø¶ÔÏ󡣸ù¼¯ºÏÊÇÓÉÀàÖеľ²Ì¬ÒýÓÃÓòÓë±¾µØÒýÓÃÓò×é³ÉµÄ¡£

JVM¹ÜÀíµÄÁ½ÖÖÀàÐ͵ÄÄڴ棺¶ÔÄڴ棨heap£©ºÍÕ»Äڴ棨stack£©¡£¶ÑÄÚ´æÖ÷ÒªÓÃÀ´´æ´¢³ÌÐòÔÚÔËÐÐʱ´´½¨»òʵÀý»¯µÄ¶ÔÏóÓë±äÁ¿£¬¶øÕ»ÄÚ´æÔòÊÇÓÃÀ´´æ´¢³ÌÐò´úÂëÖÐÉùÃ÷Ϊ¾²Ì¬£¨static£©»ò£¨·Ç¾²Ì¬£©µÄ·½·¨¡£

¶ÑÄڴ棨heap£©Í¨³£±»·Ö³ÉÁ½¸öÇøÓò£ºÐ¶ÔÏó£¨new object£©ÓëÀ϶ÔÏó£¨old object£©ÇøÓò¡£

жÔÏóÇøÓòÓÖ¿ÉÒÔϸ·ÖΪÈý¸öÐ¡ÇøÓò£ºÒÁµéÔ°£¨Eden£©ÇøÓò¡¢FromÇøÓòÓëToÇøÓò¡£ÒÁµéÔ°ÇøÓòÓÃÀ´±£´æÐ´´½¨µÄ¶ÔÏ󣬾ÍÏñ¶ÑÕ»Ò»Ñù£¬µ±ÇøÓòÖеĶÔÏóÂúÁËÖ®ºó£¬JVMϵͳ½«×ö¿É´ïÐÔ²âÊÔ£¬¼ì²âÄÄЩ¶ÔÏóÓɸù¼¯ºÏ³ö·¢ÊDz»¿É´ïµÄ£¬ÕâЩ¶ÔÏó¾Í¿É±»JVM»ØÊÕ£¬²¢ÇÒ½«Æä´ÓÒÁµéÔ°ÇøÓò¿½±´µ½ToÇøÓò£¬´ËʱһЩ¶ÔÏ󽫷¢Éú״̬½»»»£¬ÓеĶÔÏó¾Í´ÓToÇøÓò±»×ªÒƵ½FromÇøÓò£¬´ËʱFromÇøÓò¾ÍÓÐÁ˶ÔÏó¡£

ÔÚÀ϶ÔÏóÇøÓòÖеĶÔÏóÈÔÈ»»áÓÐÒ»¸ö½Ï³¤µÄÉúÃüÖÜÆÚ£¬µ«¾­¹ýÒ»¶Îʱ¼äºó£¬ÕâЩ¶ÔÏó¾Í»á±ä³É¶ÌÃü¶ÔÏó£¬Ò²¾ÍÊÇÀ¬»ø¶ÔÏ󣬴Ӷø±»JVM»ØÊÕ£¬½¨Ò鲻ҪƵ·±µØÇ¿ÖÆÏµÍ³×öÀ¬»ø»ØÊÕ£¬ÕâÑù»áÓ°ÏìϵͳµÄÕûÌåÐÔÄÜ¡£

JVMÖжÔÏóµÄÉúÃüÖÜÆÚ´óÖ¿ɷÖΪ7¸ö½×¶Î£º´´½¨½×¶Î£¨Creation£©¡¢Ó¦Óý׶Σ¨Using£©¡¢²»¿ÉÊӽ׶Σ¨Invisible£©¡¢²»¿Éµ½´ï½×¶Î£¨Unreachable£©¡¢¿ÉÊÕ¼¯½×¶Î£¨Collected£©¡¢ÖÕ½á½×¶Î£¨Finalized£©¡¢ÊͷŽ׶Σ¨Free£©¡£

¡ù     ´´½¨½×¶Î

ϵͳͨ¹ýÏÂÃæµÄ²½Ö裬Íê³É´´½¨¶ÔÏóµÄ¹ý³Ì£º

£¨1£©       Ϊ¶ÔÏó·ÖÅä´æ´¢¿Õ¼ä¡£

£¨2£©       ¿ªÊ¼¹¹Ôì¶ÔÏó¡£

£¨3£©       µÝ¹éµ÷ÓÃÆä³¬ÀàµÄ¹¹Ôì·½·¨¡£

£¨4£©       ½øÐжÔÏóʵÀý³õʼ»¯Óë±äÁ¿³õʼ»¯¡£

£¨5£©       Ö´Ðй¹Ôì·½·¨Ìå¡£

´´½¨¶ÔÏóʱ¼¸¸ö¹Ø¼üÓ¦ÓùæÔò£º

£¨1£©       ±ÜÃâÔÚÑ­»·ÌåÖд´½¨¶ÔÏ󣬼´Ê¹¶ÔÏóÕ¼ÓõÄÄÚ´æ¿Õ¼ä²»´ó¡£

£¨2£©       ¾¡Á¿¼°Ê±Ê¹¶ÔÏó·ûºÏÀ¬»ø»ØÊÕ±ê×¼¡£

£¨3£©       ²»Òª²ÉÓùýÉîµÄ¼Ì³Ð²ã´Î¡£

£¨4£©       ·ÃÎʱ¾µØ±äÁ¿ÓÅÓÚ·ÃÎÊÀàÖеıäÁ¿¡£

¡ù     Ó¦Óý׶Î

ÔÚÓ¦Óý׶Σ¬¶ÔÏó¾ß±¸ÏÂÁÐÌØÕ÷£º

£¨1£©       ϵͳÖÁÉÙά»¤¶ÔÏóµÄÒ»¸öÇ¿ÒýÓã¨Strong Reference£©£»

£¨2£©       ËùÓжԸöÔÏóµÄÒýÓÃÈ«²¿ÊÇÇ¿ÒýÓ㬳ý·ÇÎÒÃÇÏÔʾʹÓÃÁËÈíÒýÓã¨Soft Reference£©¡¢ÈõÒýÓã¨Weak Reference£©»òÐéÒýÓã¨Phantom Reference£©¡£

Ç¿ÒýÓÃÊÇÖ¸JVMÄÚ´æ¹ÜÀíÆ÷´Ó¸ùÒýÓü¯ºÏ£¨Root set£©³ö·¢±éѰ¶ÑÖÐËùÓе½´ï¶ÔÏóµÄ·¾¶¡£µ±µ½´ï¶ÔÏóµÄÈÎÒâ·¾¶¶¼²»º¬ÓÐÒýÓöÔÏóʱ£¬Õâ¸ö¶ÔÏóµÄÒýÓþͱ»³ÆÎªÇ¿ÒýÓá£

ÈíÒýÓþßÓнÏÇ¿µÄÒýÓù¦ÄÜ£¬Ö»Óе±ÄÚ´æ²»¹»µÄʱºò£¬²Å»ØÊÕÕâÀàÄÚ´æ¡£ÁíÍâÕâЩÒýÓöÔÏó»¹Äܱ£Ö¤ÔÚJavaÅ׳öOutOfMemoryÒ쳣֮ǰ£¬±»ÉèÖÃΪNULL¡£Ëü¿ÉÒÔÓÃÓÚʵÏÖһЩ³£ÓÃ×ÊÔ´µÄ»º´æ£¬ÊµÏÖCacheµÄ¹¦ÄÜ£¬±£Ö¤×î´óÏ޶ȵÄÊÔÓÃÄÚ´æ¶ø²»ÒýÆðOutOfMemory¡£µ«ÔÚijЩʱºò¶ÔÈíÒýÓõÄÊÔÓûήµÍÓ¦ÓóÌÐòµÄÔËÐÐЧÂÊÓëÐÔÄÜ¡£

ÈõÒýÓöÔÏóÓëSoftÒýÓöÔÏóµÄ×î´ó²»Í¬¾ÍÔÚÓÚ£ºGCÔÚ½øÐлØÊÕʱ£¬ÐèҪͨ¹ýËã·¨¼ì²éÊÇ·ñ»ØÊÕSoftÒýÓöÔÏ󣬶ø¶ÔÓÚWeakÒýÓöÔÏó£¬GC×ÜÊǽøÐлØÊÕ¡£WeakÒýÓöÔÏó³£ÓÃÓÚMap½á¹¹ÖУ¬ÒýÓÃÕ¼ÓÃÄÚ´æ¿Õ¼ä±È½Ï´óµÄ¶ÔÏó£¬Ò»µ©¶ÔÏóµÄÇ¿ÒýÓÃΪnullʱ£¬Õâ¸ö¶ÔÏóµÄÒýÓþͲ»´æÔÚÁË£¬GCÄܹ»¿ìËÙ»ØÊոöÔÏó¡£

ÐéÒýÓõÄÓÃ;½ÏÉÙ£¬Ö÷ÒªÓÃÓÚ¸¨Öúfinalizeº¯ÊýµÄʹÓá£

¡ù     ²»¿ÉÊÓ½×¶Î

µ±Ò»¸ö¶ÔÏó´¦ÔÚ²»¿ÉÊӽ׶Σ¬ËµÃ÷ÎÒÃDz»ÄÜÔÚÆäËüÇøÓòµÄ´úÂëÖÐÒýÓÃËü£¬´ËʱӦ¸ÃÖ÷¶¯½«ÆäÉèÖÃΪ¿Õ£¬°ïÖúJVM¼°Ê±µØ·¢ÏÖÕâ¸öÀ¬»ø¶ÔÏ󣬲¢ÇÒ»ØÊÕϵͳ×ÊÔ´¡£

¡ù     ¿ÉÊÕ¼¯½×¶Î¡¢ÖÕ½á½×¶ÎÓëÊͷŽ׶Î

¶ÔÏó¿ÉÄÜ´¦ÓÚÈýÖÖÇé¿ö£º

£¨1£©       »ØÊÕÆ÷·¢ÏָöÔÏóÒѾ­²»¿Éµ½´ï¡£

£¨2£©       Finalize·½·¨ÒѾ­±»Ö´ÐС£

£¨3£©       ¶ÔÏó¿Õ¼äÒѱ»ÖØÓá£

Java³ÌÐòÉè¼ÆÖÐÓйØÄÚ´æ¹ÜÀíµÄÆäËü¾­Ñ飺

£¨1£©       ×î»ù±¾µÄ½¨Òé¾ÍÊǾ¡ÔçÊÍ·ÅÎÞÓöÔÏóµÄÒýÓá£

£¨2£©       ¾¡Á¿ÉÙÓÃfinalizeº¯Êý¡£

£¨3£©       Èç¹ûÐèҪʹÓþ­³£ÓôóµÄͼƬ£¬¿ÉÒÔʹÓÃsoftÓ¦ÓÃÀàÐÍ¡£

£¨4£©       ×¢Ò⼯ºÏÊý¾ÝÀàÐÍ£¬°üÀ¨Êý×é¡¢Ê÷¡¢Í¼¡¢Á´±íµÈÊý¾Ý½á¹¹£¬ÕâЩÊý¾Ý½á¹¹¶ÔGCÀ´Ëµ£¬»ØÊÕ¸üΪ¸´ÔÓ¡£ÁíÍâ×¢ÒâһЩȫ¾Ö±äÁ¿£¬¾²Ì¬±äÁ¿£¬ÕâЩ±äÁ¿ÍùÍùÈÝÒ×Ôì³É²»±ØÒªµÄÄÚ´æ×ÊÔ´ÀË·Ñ¡£

£¨5£©       ¾¡Á¿±ÜÃâÔÚÀàµÄĬÈϹ¹ÔìÆ÷Öд´½¨¡¢³õʼ»¯´óÁ¿¶ÔÏ󣬷ÀÖ¹ÔÚµ÷ÓÃÆä×ÔÀàµÄ¹¹ÔìÆ÷ʱÔì³É²»±ØÒªµÄÄÚ´æÀË·Ñ¡£

£¨6£©       ¾¡Á¿±ÜÃâÇ¿ÖÆÏµÍ³×öÀ¬»ø»ØÊÕ£¬Ôö³¤ÏµÍ³×öÀ¬»ø»ØÊÕµÄ×îÖÕʱ¼ä£¬½µµÍϵͳÐÔÄÜ¡£

£¨7£©       ¾¡Á¿±ÜÃâÏÔʾÉêÇëÊý×é¿Õ¼ä£¬µ±²»µÃ²»ÏÔʾµØÉêÇëÊý×é¿Õ¼äʱ¾¡Á¿×¼È·µÄ¹À¼Æ³öÆäºÏÀíÖµ¡£

£¨8£©       ¾¡Á¿ÔÚÔ¶³Ì·½·¨µ÷Óã¨RMI£©ÀàÓ¦Óÿª·¢Ê±Ê¹ÓÃ˲¼äÖµ£¨transient£©±äÁ¿£¬³ý·ÇÔ¶³Ìµ÷ÓöËÐèÒª»ñÈ¡¸Ã˲¼äÖµ±äÁ¿µÄÖµ¡£

£¨9£©       ¾¡Á¿ÔÚºÏÊʵij¡¾°ÏÂʹÓöÔÏ󳨼¼ÊõÒÔÌá¸ßϵͳÐÔÄÜ£¬Ëõ¼õϵͳ¿ªÏú£¬µ«ÊÇҪעÒâ¶ÔÏó³ØµÄ³ß´ç²»Ò˹ý´ó£¬¼°Ê±Çå³ýÎÞЧ¶ÔÏóÊÍ·ÅÄÚ´æ×ÊÔ´£¬×ۺϿ¼ÂÇÓ¦ÓÃÔËÐл·¾³µÄÄÚ´æ×ÊÔ´ÏÞÖÆ£¬±ÜÃâ¹ý¸ß¹À¼ÆÔËÐл·¾³ËùÌṩÄÚ´æ×ÊÔ´µÄÊýÁ¿¡£

²©¿ÍÍÆ¼öÎÄÕÂ
ǰһƪ£ººº×Ö±àÂëÎÊÌâ
[·¢ÆÀÂÛ] ÆÀÂÛ ÖØÒªÌáʾ£º¾¯ÌèÐé¼ÙÖн±ÐÅÏ¢!
  • chinaunixÍøÓÑ 2006-04-20 23:59
    ¡¶JavaÓÅ»¯±à³Ì¡·Ö®ÀàÓë½Ó¿Ú ¡ùÀ๹ÔìÆ÷µÄ±àд¹æÔò £¨1£©±ÜÃâÔÚÀàµÄ¹¹ÔìÆ÷Öгõʼ»¯ÆäËüÀࣻ £¨2£©²»Òª¸ø¹¹ÔìÆ÷ÎóÌí¼Ó·µ»ØÖµ£» £¨3£©¾¡Á¿±ÜÃâÔÚ¹¹ÔìÆ÷ÖжԾ²Ì¬±äÁ¿×ö¸³Öµ²Ù×÷£» £¨4£©²»ÒªÔÚÀàµÄ¹¹ÔìÆ÷Öд´½¨ÀàµÄʵÀý£» ¡ùÀàµÄ¼Ì³Ð¹æÔò £¨1£©µ¥Ï߼̳йæÔò¡£C£«£«ÖÐÀàÊÇ¿ÉÒÔ¶àÖØ¼Ì³ÐµÄ£¬¶øÔÚJavaÓïÑÔÖУ¬Ò»¸öÀàÖ»ÄÜÓÐÒ»¸ö¸¸À࣬µ«½Ó¿ÚÈ´ÊÇ¿ÉÒÔ¶àÖØ¼Ì³ÐµÂ£¬ÕâÊÇJavaÓïÑÔÖÐÀàÓë½Ó¿ÚµÄÖØÒªÇø±ð¡£ £¨2£©°üÄÚ²¿¼Ì³Ð¹æÔò¡£µ±Ò»¸öÀàÊÇÁíÒ»¸öÀàµÄÄÚ²¿Ààʱ£¬»òÕßÒ»¸öÀ಻Ïë±»ËùÔÚ°üÃû³Æ¿Õ¼äÒÔÍâµÄ³ÉÔ±·ÃÎÊʱ£¬²»ÔÚÀàµÄÉùÃ÷ÖÐÌí¼Ópublic¹Ø¼ü×Ö¡£ÄÚ²¿ÀàÊÇJavaÓïÑÔÌØÓеÄÀàÐÍ£¬ÆäÖ»Äܱ»Ö÷ÀàÒÔÍâµÄÆäËüÄÚ²¿Àà¼Ì³Ð£¬Ö÷À಻Äܼ̳ÐÄÚ²¿Àà¡£ ¡ù³éÏóÀàÓë½Ó¿ÚµÄÇø±ð ¹²Í¬µã£º £¨1£©³éÏóÀàºÍ½Ó¿Ú¶¼²»Äܱ»ÊµÀý»¯£» £¨2£©½Ó¿ÚÓë³éÏóÀà¶¼²»¿ÉÒÔ¶ÀÁ¢ÔËÐУ¬Ò²¾ÍÊÇ˵ËûÃǶ¼²»ÄÜ×÷ΪӦÓõÄÖ÷Àࣻ £¨3£©½Ó¿Ú¿ÉÒÔÓÐÊôÐÔ£¬³éÏóÀàÒ²¿ÉÒÔÓÐÊôÐÔ£» ²»Í¬µã£º £¨1£©½Ó¿ÚÖеÄËùÓÐÊôÐÔÓë·½·¨µÄÉùÃ÷¶¼±ØÐëÊÇpublicÀàÐÍ£¬³ýabstract·½·¨Í⣬³éÏóÀàµÄÊôÐÔÓë·½·¨¼È¿ÉÒÔÊÇpublicÒ²¿ÉÒÔÊÇprivate»òprotected£¬abstract·½·¨Ö»ÄÜÊÇpublicÀàÐÍ»òÕßprotectedÀàÐÍ¡£ £¨2£©½Ó¿ÚÖеķ½·¨²»ÄÜÓз½·¨Ì壬¶ø³éÏóÀàÖеķ½·¨ÊÇ¿ÉÒÔÓз½·¨ÌåµÄ£¬ÉõÖÁÊdzéÏó·½·¨¡£ £¨3£©½Ó¿ÚÖ»Äܱ»ÀàʵÏÖ£¬¶ø³éÏóÀàÖ»Äܱ»¼Ì³Ð£» £¨4£©½Ó¿Ú¿ÉÒÔ¶àÖØ¼Ì³Ð£¬¶ø³éÏóÀàÖ»Äܵ¥Ï߼̳С£ ¡ùÄÚ²¿Àà ÄÚ²¿ÀࣨInner Class£©ÊÇÒ»ÖÖ½ÏÎªÌØÊâµÄJavaÀàÐÎʽ£¬ËüǶÈëÒ»¸öÖ÷ÀàÖеÄÀ࣬ÊôÓÚÀàÒ»²¿·Ö¡£Òò´ËÄÚ²¿Àà¿ÉÒÔÖ±½Ó·ÃÎÊÖ÷ÀàÖеÄ˽ÓгÉÔ±£¬°üÀ¨ÊôÐԺͷ½·¨¡£µ«ÊÇÖ÷À಻ÄÜÖ±½Ó·ÃÎÊÄÚ²¿ÀàÖеÄÈκγÉÔ±£¬°üÀ¨public¡¢protectedÓëprivate³ÉÔ±£¬µ«ÊÇÖ÷Àà¿ÉÒÔͨ¹ý´´½¨ÄÚ²¿ÀàµÄʵÀý¶ÔÏó£¬ÒýÓÃÄÚ²¿ÀàÖеÄÈκγÉÔ±¡£ÔÚÄÚ²¿ÀàÖв»¿ÉÒÔÉùÃ÷Èκξ²Ì¬³ÉÔ±¡£ÄÚ²¿ÀàµÄÒ»¸öµäÐÍÓ¦ÓÃÊÇ£ºÔÚÀàÖд´½¨Ò»¸ö¶ÀÁ¢µÄÏß³ÌÀ࣬Ȼºóµ÷ÓÃÖ÷ÀàµÄ·µ»ØÖÜÆÚ½Ï³¤µÄ·½·¨¾­³£Óõ½¡£ ¡ùÓëÐÔÄÜÏà¹ØµÄ½¨ÒéÓë¾­Ñé £¨1£©±ÜÃ⸴ÔÓ¡¢°º¹óµÄ¹¹Ôì¹ý³Ì£¬ÀýÈçһάÊý×é±È¶àάÊý×éÒª¿ìһЩ£» £¨2£©ÄÚ²¿Àà¶ÔÏóµÄ´´½¨Ïà¶ÔÒ»°ãÀàµÄʵÀý»¯Òª¸´ÔÓ¡¢ºÄʱһЩ£» £¨3£©ÔÚ³ÌÐòÉè¼ÆÖо¡Á¿Ê¹Óýӿڣ¨Interface£©£¬ÒòΪ½Ó¿ÚµÄ½á¹¹¸üÈÝÒ×±»½»»»£¬ÒÔÌá¸ßϵͳµÄÐÔÄÜ£» £¨4£©Ê¹ÓÃÔ­Êý¾ÝÀàÐ͵İü×°Àà±ÈʹÓÃÔ­Êý¾ÝÒªµÍЧ£» £¨5£©×îºÃ°ÑËùÓÐÖ»½øÐÐÒ»´Î³õʼ»¯µÄ±äÁ¿£¬·ÅÔÚÀ๹ÔìÆ÷ÖÐÒ»´ÎÐÔ³õʼ»¯£» £¨6£©´ó¶àÊýµÄJVMÔÚËÑË÷½Ó¿ÚÁбíʱ¶¼ÊÇ´ÓºóÏòǰËÑË÷µÄ£¬Òò´Ë¾­³£Óõ½µÄ½Ó¿Ú×îºÃλÓÚimplements¹Ø¼ü×ÖÁбíµÄ×îºóÃæ¡£ £¨7£©×îºÃͨ¹ýClass.forname()¶¯Ì¬µÄ×°ÔØÀà¡£
  • chinaunixÍøÓÑ 2006-04-20 23:28
    ¡¶JavaÓÅ»¯±à³Ì¡·Ö®JavaºËÐÄÀàÓëÐÔÄÜÓÅ»¯ һЩɢÁбíµÄºËÐÄÀàÊÇḬ̈߳²È«µÄ£¬ÈçVectorÀࣻһЩºËÐÄÀ಻ÊÇḬ̈߳²È«µÄ£¬ÈçArrayListÀà¡£ÔÚ¶àÏ̻߳·¾³Ï£¬¿ÉÒÔͨ¹ýCollections.syschronizedList()·½·¨À´Ê¹ÓÃArrayListµÈ·ÇḬ̈߳²È«µÄÉ¢ÁкËÐÄÀà¡£ÁíÔÚ´¦ÀíÒÑÖªÈÝÁ¿µÄ½Ï´óÊý×éʱ£¬Ó¦Ìáǰµ÷ÓÃensureCapacity()·½·¨³õʼ»¯ArrayList¶ÔÏó£¬ÒÔÌá¸ßÈí¼þÓ¦ÓÃÐÔÄÜ¡£ ͨ¹ýStringBufferÖеÄappend()·½·¨½«×Ö·û´®ÀÛ¼Ó¿ÉÒÔÌá¸ßϵͳµÄÐÔÄÜ£¬»òÕßÏÈ´´½¨Ò»¸ö×Ö·ûÊý×飬ȻºóÏòÆäÖÐÌí¼Ó×Ö·û£¬´ïµ½ÀÛ¼ÓµÄÄ¿µÄ£¬·µ»Ø×îÖÕÉú³ÉµÄ×Ö·û´®£¬Ç°ÌáÊÇÓ¦¸Ã´óÌåÖªµÀÕâ¸ö×Ö·û´®µÄ×î´ó³¤¶È¡£Ê¹ÓÃcharAt()·½·¨»ñÈ¡ÌØ¶¨Î»ÖõÄ×Ö·ûÊǷdz£ºÄʱµÄ£¬¸üºÃµÄ°ì·¨Êǽ«×Ö·û´®Í¨¹ýµ÷ÓÃtoCharArray()·½·¨×ª»¯Îª×Ö·ûÊý×飬Ȼºóͨ¹ýÊý×éË÷ÒýÖµ»ñȡָ¶¨Î»ÖõÄ×Ö·û¡£ ÖÚËùÖÜÖªI/O²Ù×÷·Ç³£ºÄʱ£¬ÎÞÒɽ«Ôںܴó³Ì¶ÈÉϽµµÍÁËϵͳÐÔÄÜ£¬µ«ÊÇJavaÓïÑÔÌá¸ßÁËרÃÅÓÃÀ´Ìá¸ßϵͳI/OЧÂʵĻº³åÀ࣬ÕâºÃ±ÈÔÚÊý¾Ý¶ÁÈ¡ÓëдÈëʱÌṩÁËÒ»¸öÁÙʱµÄ»º³åÇø£¬Ã¿´Î¿ÉÒÔ¶Áȡһ¸ö»º³åÇø´óСµÄÊý¾Ý¿é£¬È»ºó½«Õâ¸öÊý¾Ý¿éÒ»´ÎÐÔдÈ뵽Ŀ±êÉ豸ÖС£Áí¿ÉÒÔ¶¨ÖÆ»º³åÇø£¬ÒÔÌá¸ßϵͳµÄÐÔÄÜ¡£
  • chinaunixÍøÓÑ 2006-04-20 23:27
    ¡¶JavaÓÅ»¯±à³Ì¡·Ö®±í´ïʽ¡¢Óï¾äÓë±£Áô×Ö ¡ù¾²Ì¬´úÂë¿é ÓÐʱºòΪÁËÄÜÔÚÒýÓÃÒ»¸öÀàµÄʱºò×÷һЩ±ØÒªµÄ³õʼ»¯¹¤×÷£¬¾­³£ÀûÓÃstatic¹Ø¼ü×Ö¼ÓÈëһЩ¾²Ì¬µÄ´úÂë¿é£¬Íê³ÉÕâ¸ö³¬Ç°¹¦ÄÜ¡£ ¾²Ì¬´úÂë¿é¶Ô¾²Ì¬±äÁ¿µÄÓ¦ÓÃÔÚÉùÃ÷ÉÏ´æÔÚÏȺó˳ÐòµÄÏÞÖÆ£¬ÕâÓë·½·¨ÖÐÒýÓñäÁ¿µÄÇé¿öÊDz»Í¬µÄ£¬ÔÚ·½·¨ÌåÖÐÒýÓõıäÁ¿ÔÚÀàÎļþǰºóÉùÃ÷ûÓÐÏÞÖÆ£¬µ«ÊÇÈç¹ûÄãÊÔͼÔÚ¾²Ì¬´úÂë¿éÖÐÒýÓþ²Ì¬±äÁ¿£¬¾ÍÒª¿¼ÂÇÆäÉùÃ÷µÄÏȺó˳ÐòµÄÏÞ¶¨£¬ÔÚ¾²Ì¬´úÂë¿éÖÐÒýÓõľ²Ì¬±äÁ¿±ØÐëÔÚ¾²Ì¬´úÂë¿é֮ǰÉùÃ÷¡£ ¶Ô¾²Ì¬±äÁ¿µÄÒýÓÃÓÐÏÂÃæµÄ¹æÔò£º £¨1£© ¿ÉÒÔÔڷǾ²Ì¬·½·¨ÌåÖÐÒýÓþ²Ì¬±äÁ¿¡£ £¨2£© ÔÚ¾²Ì¬·½·¨ÌåÖв»¿ÉÒÔÒýÓ÷Ǿ²Ì¬±äÁ¿¡£ £¨3£© ¿ÉÒÔÔÚ¾²Ì¬·½·¨ÌåÖд´½¨·Ç¾²Ì¬±äÁ¿¡£ ¡ùfinal¹Ø¼ü×Ö ±£Áô×ÖfinalµÄÓ¦Ó÷¶Î§£º £¨1£© ÓÃÀ´ÉùÃ÷ÀàµÄ±äÁ¿¡£ £¨2£© ÓÃÀ´ÉùÃ÷·½·¨µÄ³£Á¿²ÎÊý£¬¶Ô±äÁ¿Æðµ½ÏàÓ¦µÄ±£»¤×÷Ó㬷ÀÖ¹±äÁ¿±»ÎÞÒ⸳ֵ¡£ £¨3£© ÓÃÀ´ÉùÃ÷²»¿É¸²¸ÇµÄ·½·¨£¬²»µ«¿ÉÒÔ·ÀÖ¹¸¸ÀàÖеķ½·¨²»±»×ÓÀา¸Ç£¬»¹¿ÉÒÔ¼Ó¿ìÓ¦ÓõÄÔËÐÐËÙ¶È£¬Ìá¸ßϵͳÐÔÄÜ¡£ £¨4£© ÓÃÀ´ÉùÃ÷²»¿É¼Ì³ÐµÄÀà¡£ ¡ùʹÓÃÑ­»·Óï¾äµÄ¼¸¸ö½¨Òé £¨1£©µ±×öÊý×鿽±´²Ù×÷ʱ£¬²ÉÓÃSystem.arraycopy()·½·¨Íê³É¿½±´²Ù×÷Òª±È²ÉÓÃÑ­»·µÄ°ì·¨Íê³ÉÊý×鿽±´²Ù×÷ЧÂʸߡ£ £¨2£©¾¡Á¿±ÜÃâÔÚÑ­»·ÌåÖе÷Ó÷½·¨£¬ÒòΪ·½·¨µ÷ÓÃÊDZȽϰº¹óµÄ¡£ £¨3£©×îºÃ±ÜÃâÔÚÑ­»·ÌåÄÚ´æÈ¡Êý×éÔªËØ£¬±È½ÏºÃµÄ°ì·¨ÊÇÔÚÑ­»·ÌåÄÚ²ÉÓÃÁÙʱ±äÁ¿£¬ÔÚÑ­»·ÌåÍâ¸ü¸ÄÊý×éµÄÖµ¡£ÕâÊÇÒòΪÔÚÑ­»·ÌåÄÚʹÓñäÁ¿±È´æÈ¡Êý×éÔªËØÒª¿ì¡£ £¨4£©µ±Ã»ÓÐʹÓÃJIT»òHotSpotÐéÄâ»úʱ£¬¾¡Á¿Ê¹ÓÃ0Öµ×÷ΪÖÕ½áÌõ¼þµÄ±È½ÏÔªËØ£¬ÒÔÌá¸ßÑ­»·µÄÐÔÄÜ¡£ £¨5£©±ÜÃâÔÚ×îÖÕÌõ¼þ±È½Ïʱ²ÉÓ÷½·¨·µ»ØÖµµÄ·½Ê½½øÐÐÅжϣ¬ÕâÑù×ö½«Ôö´óϵͳ¿ªÏú£¬½µµÍϵͳÐÔÄÜ¡£ £¨6£©¾¡Á¿±ÜÃâÔÚÑ­»·ÌåÖÐʹÓÃtry£­catch¿é£¬×îºÃÔÚÑ­»·ÌåÍâʹÓÃtry£­catch¿éÒÔÌá¸ßϵͳÐÔÄÜ¡£ £¨7£©ÔÚ¶àÖØÑ­»·ÖУ¬Èç¹û¿ÉÄÜ£¬¾¡Á¿½«×µÄÑ­»··ÅÔÚ×îÄڲ㣬×î¶ÌµÄÑ­»··ÅÔÚ×îÍâ²ã£¬ÒÔ¼õÉÙÑ­»·²ã¼äµÄÇл»´ÎÊý¡£ £¨8£©Èç¹ûÑ­»·ÌåÄÚÓÐif£­elseÀàÂß¼­Åжϣ¬²¢ÇÒÑ­»·´ÎÊýºÜ´ó£¬×îºÃ½«if£­elseÀàÂß¼­ÅжÏÒÆµ½Ñ­»·ÌåÖ®Í⣬ÒÔÌá¸ßÓ¦ÓÃÐÔÄÜ¡£
Ç×£¬Äú»¹Ã»ÓеǼ,Çë[µÇ¼]»ò[×¢²á]ºóÔÙ½øÐÐÆÀÂÛ