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

µÚ99²¿·Ö

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

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

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




¡¡¡¡£ý¡¡¡¡

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

¡¡¡¡

ËùÓÐÊý¾Ý¶¼ÉèΪprivate£¬¿ÉÒÔ¿´µ½Ã»ÓÐÈκÎpublic¡¡·½·¨¶ÔÊý¾Ý×÷³öÐ޸ġ£ÊÂʵÉÏ£¬È·ÊµÐèÒªÐÞ¸ÄÒ»¸ö¶ÔÏó¡¡

µÄ·½·¨ÊÇquadruple£¨£©£¬µ«ËüµÄ×÷ÓÃÊÇн¨Ò»¸öImmutable1¡¡¶ÔÏ󣬳õʼ¶ÔÏóÔòÊÇÔ­·âδ¶¯µÄ¡£¡¡¡¡

·½·¨¡¡f£¨£©ÐèҪȡµÃÒ»¸ö¡¡Immutable1¶ÔÏ󣬲¢¶ÔÆä²ÉÈ¡²»Í¬µÄ²Ù×÷£¬¶ø¡¡main£¨£©µÄÊä³öÏÔʾ³öûÓжÔx¡¡×÷ÈκÎÐÞ¡¡

¸Ä¡£Òò´Ë£¬x¡¡¶ÔÏó¿É±ðÃû´¦ÀíÐí¶à´Î£¬²»»áÔì³ÉÈκÎÉ˺¦£¬ÒòΪ¸ù¾Ý¡¡Immutable1ÀàµÄÉè¼Æ£¬ËüÄܱ£Ö¤¶ÔÏ󲻡¡

±»¸Ä¶¯¡£¡¡¡¡



12¡£4¡£2¡¡¡¡¡°Ò»³É²»±ä¡±µÄ±×¶Ë¡¡¡¡



´Ó±íÃæ¿´£¬²»±äÀàµÄ½¨Á¢ËƺõÊÇÒ»¸öºÃ·½°¸¡£µ«ÊÇ£¬Ò»µ©ÕæµÄÐèÒªÄÇÖÖÐÂÀàÐ͵ÄÒ»¸öÐ޸ĵĶÔÏ󣬾ͱØÐëÐÁ¡¡

¿àµØ½øÐÐжÔÏóµÄ´´½¨¹¤×÷£¬Í¬Ê±»¹ÓпÉÄÜÉæ¼°¸üƵ·±µÄÀ¬»øÊÕ¼¯¡£¶ÔÓÐЩÀàÀ´Ëµ£¬Õâ¸öÎÊÌâ²¢²»ÊǺܴ󡣡¡

µ«¶ÔÆäËûÀàÀ´Ëµ£¨±ÈÈç¡¡String¡¡Àࣩ£¬ÕâÒ»·½°¸µÄ´ú¼ÛÏÔµÃÌ«¸ßÁË¡£¡¡¡¡

Ϊ½â¾öÕâ¸öÎÊÌ⣬ÎÒÃÇ¿ÉÒÔ´´½¨Ò»¸ö¡°Í¬Ö¾¡±À࣬²¢Ê¹ÆäÄܹ»Ð޸ġ£ÒÔºóÖ»ÒªÉæ¼°´óÁ¿µÄÐ޸Ť×÷£¬¾Í¿É»»¡¡

ΪʹÓÃÄÜÐ޸ĵÄͬ־Àà¡£ÍêÊÂÒÔºó£¬ÔÙÇл»»Ø²»¿É±äµÄÀà¡£¡¡¡¡

Òò´Ë£¬ÉÏÀý¿É¸Ä³ÉÏÂÃæÕâ¸öÑù×Ó£º¡¡¡¡

¡¡¡¡

//£º¡¡Immutable2¡£java¡¡¡¡

//¡¡A¡¡panion¡¡class¡¡for¡¡making¡¡changes¡¡¡¡

//¡¡to¡¡immutable¡¡objects¡£¡¡¡¡

¡¡¡¡

class¡¡Mutable¡¡£û¡¡¡¡

¡¡¡¡private¡¡int¡¡data£»¡¡¡¡

¡¡¡¡public¡¡Mutable£¨int¡¡initVal£©¡¡£û¡¡¡¡

¡¡¡¡¡¡¡¡data¡¡=¡¡initVal£»¡¡¡¡

¡¡¡¡£ý¡¡¡¡

¡¡¡¡public¡¡Mutable¡¡add£¨int¡¡x£©¡¡£û¡¡¡¡¡¡

¡¡¡¡¡¡¡¡data¡¡£«=¡¡x£»¡¡¡¡

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

¡¡¡¡£ý¡¡¡¡

¡¡¡¡public¡¡Mutable¡¡multiply£¨int¡¡x£©¡¡£û¡¡¡¡

¡¡¡¡¡¡¡¡data¡¡*=¡¡x£»¡¡¡¡

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

¡¡¡¡£ý¡¡¡¡

¡¡¡¡public¡¡Immutable2¡¡makeImmutable2£¨£©¡¡£û¡¡¡¡

¡¡¡¡¡¡¡¡return¡¡new¡¡Immutable2£¨data£©£»¡¡¡¡

¡¡¡¡£ý¡¡¡¡

£ý¡¡¡¡



¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡371¡¡


¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­Page¡¡373¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­

¡¡¡¡

public¡¡class¡¡Immutable2¡¡£û¡¡¡¡

¡¡¡¡private¡¡int¡¡data£»¡¡¡¡

¡¡¡¡public¡¡Immutable2£¨int¡¡initVal£©¡¡£û¡¡¡¡

¡¡¡¡¡¡¡¡data¡¡=¡¡initVal£»¡¡¡¡

¡¡¡¡£ý¡¡¡¡

¡¡¡¡public¡¡int¡¡read£¨£©¡¡£û¡¡return¡¡data£»¡¡£ý¡¡¡¡

¡¡¡¡public¡¡boolean¡¡nonzero£¨£©¡¡£û¡¡return¡¡data¡¡£¡=¡¡0£»¡¡£ý¡¡¡¡

¡¡¡¡public¡¡Immutable2¡¡add£¨int¡¡x£©¡¡£û¡¡¡¡¡¡

¡¡¡¡¡¡¡¡return¡¡new¡¡Immutable2£¨data¡¡£«¡¡x£©£»¡¡¡¡

¡¡¡¡£ý¡¡¡¡

¡¡¡¡public¡¡Immutable2¡¡multiply£¨int¡¡x£©¡¡£û¡¡¡¡

¡¡¡¡¡¡¡¡return¡¡new¡¡Immutable2£¨data¡¡*¡¡x£©£»¡¡¡¡

¡¡¡¡£ý¡¡¡¡

¡¡¡¡public¡¡Mutable¡¡makeMutable£¨£©¡¡£û¡¡¡¡

¡¡¡¡¡¡¡¡return¡¡new¡¡Mutable£¨data£©£»¡¡¡¡

¡¡¡¡£ý¡¡¡¡

¡¡¡¡public¡¡static¡¡Immutable2¡¡modify1£¨Immutable2¡¡y£©£û¡¡¡¡

¡¡¡¡¡¡¡¡Immutable2¡¡val¡¡=¡¡y¡£add£¨12£©£»¡¡¡¡

¡¡¡¡¡¡¡¡val¡¡=¡¡val¡£multiply£¨3£©£»¡¡¡¡

¡¡¡¡¡¡¡¡val¡¡=¡¡val¡£add£¨11£©£»¡¡¡¡

¡¡¡¡¡¡¡¡val¡¡=¡¡val¡£multiply£¨2£©£»¡¡¡¡

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

¡¡¡¡£ý¡¡¡¡

¡¡¡¡//¡¡This¡¡produces¡¡the¡¡same¡¡result£º¡¡¡¡

¡¡¡¡public¡¡static¡¡Immutable2¡¡modify2£¨Immutable2¡¡y£©£û¡¡¡¡

¡¡¡¡¡¡¡¡Mutable¡¡m¡¡=¡¡y¡£makeMutable£¨£©£»¡¡¡¡

¡¡¡¡¡¡¡¡m¡£add£¨12£©¡£multiply£¨3£©¡£add£¨11£©¡£multiply£¨2£©£»¡¡¡¡

¡¡¡¡¡¡¡¡return¡¡m¡£makeImmutable2£¨£©£»¡¡¡¡

¡¡¡¡£ý¡¡¡¡

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

¡¡¡¡¡¡¡¡Immutable2¡¡i2¡¡=¡¡new¡¡Immutable2£¨47£©£»¡¡¡¡

¡¡¡¡¡¡¡¡Immutable2¡¡r1¡¡=¡¡modify1£¨i2£©£»¡¡¡¡

¡¡¡¡¡¡¡¡Immutable2¡¡r2¡¡=¡¡modify2£¨i2£©£»¡¡¡¡

¡¡¡¡¡¡¡¡System¡£out¡£println£¨¡¨i2¡¡=¡¡¡¨¡¡£«¡¡i2¡£read£¨£©£©£»¡¡¡¡

¡¡¡¡¡¡¡¡System¡£out¡£println£¨¡¨r1¡¡=¡¡¡¨¡¡£«¡¡r1¡£read£¨£©£©£»¡¡¡¡

¡¡¡¡¡¡¡¡System¡£out¡£println£¨¡¨r2¡¡=¡¡¡¨¡¡£«¡¡r2¡£read£¨£©£©£»¡¡¡¡

¡¡¡¡£ý¡¡¡¡

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

¡¡¡¡

ºÍÍù³£Ò»Ñù£¬Immutable2¡¡°üº¬µÄ·½·¨±£ÁôÁ˶ÔÏ󲻿ɱäµÄÌØÕ÷£¬Ö»ÒªÉæ¼°Ð޸ģ¬¾Í´´½¨ÐµĶÔÏó¡£Íê³ÉÕâЩ¡¡

²Ù×÷µÄÊÇadd£¨£©ºÍmultiply£¨£©·½·¨¡£Í¬Ö¾Àà½Ð×÷¡¡Mutable£¬ËüÒ²º¬ÓС¡add£¨£©ºÍ¡¡multiply£¨£©·½·¨¡£µ«ÕâЩ·½·¨¡¡

Äܹ»ÐÞ¸ÄMutable¡¡¶ÔÏ󣬶ø²»ÊÇн¨Ò»¸ö¡£³ý´ËÒÔÍ⣬Mutable¡¡µÄÒ»¸ö·½·¨¿ÉÓÃËüµÄÊý¾Ý²úÉúÒ»¸ö¡¡

Immutable2¶ÔÏ󣬷´Ö®ÒàÈ»¡£¡¡¡¡

Á½¸ö¾²Ì¬·½·¨modify1£¨£©ºÍ¡¡modify2£¨£©½Òʾ³ö»ñµÃͬÑù½á¹ûµÄÁ½ÖÖ²»Í¬·½·¨¡£ÔÚ¡¡modify1£¨£©ÖУ¬ËùÓй¤×÷¶¼ÊÇ¡¡

ÔÚ¡¡Immutable2¡¡ÀàÖÐÍê³ÉµÄ£¬ÎÒÃÇ¿É¿´µ½ÔÚ½ø³ÌÖд´½¨ÁËËĸöеġ¡Immutable2¡¡¶ÔÏ󣨶øÇÒÿ´ÎÖØзÖÅäÁË¡¡

val£¬Ç°Ò»¸ö¶ÔÏó¾Í³ÉΪÀ¬»ø£©¡£¡¡¡¡

ÔÚ·½·¨modify2£¨£©ÖУ¬¿É¿´µ½ËüµÄµÚÒ»¸öÐж¯ÊÇ»ñÈ¡¡¡Immutable2¡¡y£¬È»ºó´ÓÖÐÉú³ÉÒ»¸öMutable¡¡£¨ÀàËÆÓÚÇ°¡¡

Ãæ¶Ô¡¡clone£¨£©µÄµ÷Ó㬵«ÕâÒ»´Î´´½¨ÁËÒ»¸ö²»Í¬ÀàÐ͵ĶÔÏ󣩡£Ëæºó£¬ÓÃMutable¡¡¶ÔÏó½øÐдóÁ¿Ð޸IJÙ×÷£¬¡¡

ͬʱÓò»×Åн¨Ðí¶à¶ÔÏó¡£×îºó£¬ËüÇл»»ØImmutable2¡£ÔÚÕâÀÎÒÃÇÖ»´´½¨ÁËÁ½¸öжÔÏó£¨Mutable¡¡ºÍ¡¡

Immutable2¡¡µÄ½á¹û£©£¬¶ø²»ÊÇËĸö¡£¡¡¡¡

ÕâÒ»·½·¨ÌرðÊʺÏÔÚÏÂÊö³¡ºÏÓ¦Ó㺡¡¡¡



¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡372¡¡


¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­Page¡¡374¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­

£¨1£©¡¡ÐèÒª²»¿É±äµÄ¶ÔÏ󣬶øÇÒ¡¡¡¡

£¨2£©¡¡¾­³£ÐèÒª½øÐдóÁ¿Ð޸ģ¬»òÕß¡¡¡¡

£¨3£©¡¡´´½¨ÐµIJ»±ä¶ÔÏó´ú¼ÛÌ«¸ß¡¡¡¡



12¡£4¡£3¡¡²»±ä×Ö´®¡¡¡¡



Çë¹Û²ìÏÂÊö´úÂ룺¡¡¡¡

¡¡¡¡

//£º¡¡Stringer¡£java¡¡¡¡

¡¡¡¡

public¡¡class¡¡Stringer¡¡£û¡¡¡¡

¡¡¡¡static¡¡String¡¡upcase£¨String¡¡s£©¡¡£û¡¡¡¡

¡¡¡¡¡¡¡¡return¡¡s¡£toUpperCase£¨£©£»¡¡¡¡

¡¡¡¡£ý¡¡¡¡

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

¡¡¡¡¡¡¡¡String¡¡q¡¡=¡¡new¡¡String£¨¡¨howdy¡¨£©£»¡¡¡¡

¡¡¡¡¡¡¡¡System¡£out¡£println£¨q£©£»¡¡//¡¡howdy¡¡¡¡

¡¡¡¡¡¡¡¡String¡¡qq¡¡=¡¡upcase£¨q£©£»¡¡¡¡

¡¡¡¡¡¡¡¡System¡£out¡£println£¨qq£©£»¡¡//¡¡HOWDY¡¡¡¡

¡¡¡¡¡¡¡¡System¡£out¡£println£¨q£©£»¡¡//¡¡howdy¡¡¡¡

¡¡¡¡£ý¡¡¡¡

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

¡¡¡¡

q¡¡´«µÝ½øÈë¡¡upcase£¨£©Ê±£¬Ëüʵ¼ÊÊÇq¡¡µÄ¾ä±úµÄÒ»¸ö¸±±¾¡£¸Ã¾ä±úÁ¬½ÓµÄ¶ÔÏóʵ¼ÊÖ»ÔÚÒ»¸öͳһµÄÎïÀíλÖá¡

´¦¡£¾ä±úËÄ´¦´«µÝµÄʱºò£¬ËüµÄ¾ä±ú»áµÃµ½¸´ÖÆ¡£¡¡¡¡

Èô¹Û²ì¶Ôupcase£¨£©¡¡µÄ¶¨Ò壬»á·¢ÏÖ´«µÝ½øÈëµÄ¾ä±úÓÐÒ»¸öÃû×Ö¡¡s£¬¶øÇÒ¸ÃÃû×ÖÖ»ÓÐÔÚupcase£¨£©Ö´ÐÐÆÚ¼ä²Å»á¡¡

´æÔÚ¡£upcase£¨£©Íê³Éºó£¬±¾µØ¾ä±ú¡¡s¡¡±ã»áÏûʧ£¬¶ø¡¡upcase£¨£©·µ»Ø½á¹û¡ª¡ª»¹ÊÇÔ­À´ÄǸö×Ö´®£¬Ö»ÊÇËùÓÐ×Ö·û¡¡

¶¼±ä³ÉÁË´óд¡£µ±È»£¬Ëü·µ»ØµÄʵ¼ÊÊǽá¹ûµÄÒ»¸ö¾ä±ú¡£µ«Ëü·µ»ØµÄ¾ä±ú×îÖÕÊÇΪһ¸öжÔÏóµÄ£¬Í¬Ê±Ô­À´¡¡

µÄq¡¡²¢Î´·¢Éú±ä»¯¡£ËùÓÐÕâЩÊÇÈçºÎ·¢ÉúµÄÄØ£¿¡¡¡¡

¡¡¡¡

1¡£¡¡Òþʽ³£Êý¡¡¡¡

ÈôʹÓÃÏÂÊöÓï¾ä£º¡¡¡¡

String¡¡s¡¡=¡¡¡¨asdf¡¨£»¡¡¡¡

String¡¡x¡¡=¡¡Stringer¡£upcase£¨s£©£»¡¡¡¡

ÄÇôÕæµÄÏ£Íûupcase£¨£©·½·¨¸Ä±ä×Ô±äÁ¿»òÕß²ÎÊýÂð£¿ÎÒÃÇͨ³£ÊDz»Ô¸ÒâµÄ£¬ÒòΪ×÷ΪÌṩ¸ø·½·¨µÄÒ»ÖÖÐÅ¡¡

Ï¢£¬×Ô±äÁ¿Ò»°ãÊÇÄøø´úÂëµÄ¶ÁÕß¿´µÄ£¬¶ø²»ÊÇÈÃËûÃÇÐ޸ġ£ÕâÊÇÒ»¸öÏ൱ÖØÒªµÄ±£Ö¤£¬ÒòΪËüʹ´úÂë¸üÒס¡

±àдºÍÀí½â¡£¡¡¡¡

ΪÁËÔÚC£«£«ÖÐʵÏÖÕâÒ»±£Ö¤£¬ÐèÒªÒ»¸öÌØÊâ¹Ø¼ü×ֵİïÖú£ºconst¡£ÀûÓÃÕâ¸ö¹Ø¼ü×Ö£¬³ÌÐòÔ±¿ÉÒÔ±£Ö¤Ò»¸ö¾ä¡¡

±ú£¨C£«£«½Ð¡°Ö¸Õ롱»òÕß¡°ÒýÓá±£©²»»á±»ÓÃÀ´ÐÞ¸ÄԭʼµÄ¶ÔÏó¡£µ«ÕâÑùÒ»À´£¬C£«£«³ÌÐòÔ±ÐèÒªÓÃÐļÇסÔÚËù¡¡

Óеط½¶¼Ê¹ÓÃconst¡£ÕâÏÔÈ»Ò×ʹÈË»ìÏý£¬Ò²²»ÈÝÒ×¼Çס¡£¡¡¡¡

¡¡¡¡

2¡£¡¡¸²¸Ç¡¨£«¡¨ºÍStringBuffer¡¡¡¡

ÀûÓÃÇ°ÃæÌáµ½µÄ¼¼Êõ£¬String¡¡ÀàµÄ¶ÔÏó±»Éè¼Æ³É¡¡¡°²»¿É±ä¡±¡£Èô²éÔÄÁª»úÎĵµÖйØÓÚString¡¡ÀàµÄÄÚÈÝ£¨±¾¡¡

ÕÂÉÔºó»¹Òª×ܽáËü£©£¬¾Í»á·¢ÏÖÀàÖÐÄܹ»Ð޸ġ¡String¡¡µÄÿ¸ö·½·¨Êµ¼Ê¶¼´´½¨ºÍ·µ»ØÁËÒ»¸öոеÄString¡¡¶Ô¡¡

Ïó£¬Ð¶ÔÏóÀï°üº¬ÁËÐ޸ĹýµÄÐÅÏ¢¡ª¡ªÔ­À´µÄ¡¡String¡¡ÊÇÔ­·âδ¶¯µÄ¡£Òò´Ë£¬Java¡¡ÀïûÓÐÓëC£«£«µÄconst¡¡¶ÔÓ¦¡¡

µÄÌØÐÔ¿ÉÓÃÀ´ÈñàÒëÆ÷Ö§³Ö¶ÔÏóµÄ²»¿É±äÄÜÁ¦¡£ÈôÏë»ñµÃÕâÒ»ÄÜÁ¦£¬¿ÉÒÔ×ÔÐÐÉèÖ㬾ÍÏóString¡¡ÄÇÑù¡£¡¡¡¡

ÓÉÓÚString¡¡¶ÔÏóÊDz»¿É±äµÄ£¬ËùÒÔÄܹ»¸ù¾ÝÇé¿ö¶ÔÒ»¸öÌض¨µÄ¡¡String¡¡½øÐжà´Î±ðÃû´¦Àí¡£ÒòΪËüÊÇÖ»¶Á¡¡

µÄ£¬ËùÒÔÒ»¸ö¾ä±ú²»¿ÉÄÜ»á¸Ä±äһЩ»áÓ°ÏìÆäËû¾ä±úµÄ¶«Î÷¡£Òò´Ë£¬Ö»¶Á¶ÔÏó¿ÉÒԺܺõؽâ¾ö±ðÃûÎÊÌâ¡£¡¡¡¡

ͨ¹ýÐ޸IJúÉú¶ÔÏóµÄÒ»¸öոа汾£¬Ëƺõ¿ÉÒÔ½â¾öÐ޸ĶÔÏóʱµÄËùÓÐÎÊÌ⣬¾ÍÏó¡¡String¡¡ÄÇÑù¡£µ«¶ÔijЩ²Ù×÷¡¡

À´½²£¬ÕâÖÖ·½·¨µÄЧÂʲ¢²»¸ß¡£Ò»¸öµäÐ͵ÄÀý×Ó±ãÊÇΪString¡¡¶ÔÏ󸲸ǵÄÔËËã·û¡°£«¡±¡£¡°¸²¸Ç¡±Òâζ×ÅÔÚ¡¡

ÓëÒ»¸öÌض¨µÄÀàʹÓÃʱ£¬ËüµÄº¬ÒåÒÑ·¢ÉúÁ˱仯£¨ÓÃÓÚString¡¡µÄ¡°£«¡±ºÍ¡°£«=¡±ÊÇJava¡¡ÖÐÄܱ»¸²¸ÇµÄΨһÔË¡¡

Ëã·û£¬Java¡¡²»ÔÊÐí³ÌÐòÔ±¸²¸ÇÆäËûÈκÎÔËËã·û¡ª¡ª×¢Ê͢ܣ©¡£¡¡¡¡

¡¡¡¡



¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡373¡¡


¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­Page¡¡375¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­

¢Ü£ºC£«£«ÔÊÐí³ÌÐòÔ±ËæÒ⸲¸ÇÔËËã·û¡£ÓÉÓÚÕâͨ³£ÊÇÒ»¸ö¸´ÔӵĹý³Ì£¨²Î¼û¡¶Thinking¡¡in¡¡C£«£«¡·£¬Prentice

Hall¡¡ÓÚ¡¡1995¡¡Äê³ö°æ£©£¬ËùÒÔJava¡¡µÄÉè¼ÆÕßÈ϶¨ËüÊÇÒ»ÖÖ¡°Ôã¸â¡±µÄÌØÐÔ£¬¾ö¶¨²»ÔÚ¡¡Java¡¡ÖвÉÓᣵ«¾ßÓС¡

·íØÝÒâζµÄÊÇ£¬ÔËËã·ûµÄ¸²¸ÇÔÚJava¡¡ÖÐÒª±ÈÔÚC£«£«ÖÐÈÝÒ׵öࡣ¡¡¡¡

¡¡¡¡

Õë¶ÔString¡¡¶ÔÏóʹÓÃʱ£¬¡°£«¡±ÔÊÐíÎÒÃǽ«²»Í¬µÄ×Ö´®Á¬½ÓÆðÀ´£º¡¡¡¡

¡¡¡¡

String¡¡s¡¡=¡¡¡¨abc¡¨¡¡£«¡¡foo¡¡£«¡¡¡¨def¡¨¡¡£«¡¡Integer¡£toString£¨47£©£»¡¡¡¡

¡¡¡¡

¿ÉÒÔÏëÏó³öËü¡°¿ÉÄÜ¡±ÊÇÈçºÎ¹¤×÷µÄ£º×Ö´®¡¨abc¡¨¿ÉÒÔÓÐÒ»¸ö·½·¨append£¨£©£¬Ëüн¨ÁËÒ»¸ö×Ö´®£¬ÆäÖаüº¬¡¡

¡¨abc¡¨ÒÔ¼°foo¡¡µÄÄÚÈÝ£»Õâ¸öÐÂ×Ö´®È»ºóÔÙ´´½¨ÁíÒ»¸öÐÂ×Ö´®£¬ÔÚÆäÖÐÌí¼Ó¡¨def¡¨£»ÒÔ´ËÀàÍÆ¡£¡¡¡¡

ÕâÒ»ÉèÏëÊÇÐеÃͨµÄ£¬µ«ËüÒªÇó´´½¨´óÁ¿×Ö´®¶ÔÏó¡£¾¡¹Ü×îÖÕµÄÄ¿µÄÖ»ÊÇ»ñµÃ°üº¬ÁËËùÓÐÄÚÈݵÄÒ»¸öÐÂ×Ö¡¡

´®£¬µ«ÖмäÈ´ÒªÓõ½´óÁ¿×Ö´®¶ÔÏ󣬶øÇÒÒª²»¶ÏµØ½øÐÐÀ¬»øÊÕ¼¯¡£ÎÒ»³ÒÉ¡¡Java¡¡µÄÉè¼ÆÕßÊÇ·ñÏÈÊÔ¹ýÖÖ·½·¨¡¡

¡¡£¨ÕâÊÇÈí¼þ¿ª·¢µÄÒ»¸ö½Ìѵ¡ª¡ª³ý·Ç×Ô¼ºÊÔÊÔ´úÂ룬²¢ÈÃijЩ¶«Î÷ÔËÐÐÆðÀ´£¬·ñÔò²»¿ÉÄÜÕæÕýÁ˽âϵͳ£©¡£¡¡

ÎÒ»¹»³ÒÉËûÃÇÊÇ·ñÔç¾Í·¢ÏÖÕâÑù×ö»ñµÃµÄÐÔÄÜÊDz»ÄܽÓÊܵġ£¡¡¡¡

½â¾öµÄ·½·¨ÊÇÏóÇ°Ãæ½éÉܵÄÄÇÑùÖÆ×÷Ò»¸ö¿É±äµÄͬ־Àà¡£¶Ô×Ö´®À´Ëµ£¬Õâ¸öͬ־Àà½Ð×÷StringBuffer£¬±àÒë¡¡

Æ÷¿ÉÒÔ×Ô¶¯´´½¨Ò»¸öStringBuffer£¬ÒÔ±ã¼ÆËãÌض¨µÄ±í´ïʽ£¬ÌرðÊÇÃæÏòString¡¡¶ÔÏóÓ¦Óø²¸Ç¹ýµÄÔËËã·û£«¡¡

ºÍ£«=ʱ¡£ÏÂÃæÕâ¸öÀý×Ó¿ÉÒÔ½â¾öÕâ¸öÎÊÌ⣺¡¡¡¡

¡¡¡¡

//£º¡¡ImmutableStrings¡£java¡¡¡¡

//¡¡Demonstrating¡¡StringBuffer¡¡¡¡

¡¡¡¡

public¡¡class¡¡ImmutableStrings¡¡£û¡¡¡¡

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

¡¡¡¡¡¡¡¡String¡¡foo¡¡=¡¡¡¨foo¡¨£»¡¡¡¡

¡¡¡¡¡¡¡¡String¡¡s¡¡=¡¡¡¨abc¡¨¡¡£«¡¡foo¡¡£«¡¡¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¨def¡¨¡¡£«¡¡Integer¡£toString£¨47£©£»¡¡¡¡

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

¡¡¡¡¡¡¡¡//¡¡The¡¡¡¨equivalent¡¨¡¡using¡¡StringBuffer£º¡¡¡¡

¡¡¡¡¡¡¡¡StringBuffer¡¡sb¡¡=¡¡¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡new¡¡StringBuffer£¨¡¨abc¡¨£©£»¡¡//¡¡Creates¡¡String£¡¡¡¡¡

¡¡¡¡¡¡¡¡sb¡£append£¨foo£©£»¡¡¡¡

¡¡¡¡¡¡¡¡sb¡£append£¨¡¨def¡¨£©£»¡¡//¡¡Creates¡¡String£¡¡¡¡¡

¡¡¡¡¡¡¡¡sb¡£append£¨Integer¡£toString£¨47£©£©£»¡¡¡¡

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

¡¡¡¡£ý¡¡¡¡

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

¡¡¡¡

´´½¨×Ö´®¡¡s¡¡Ê±£¬±àÒëÆ÷×öµÄ¹¤×÷´óÖµȼÛÓÚºóÃæʹÓá¡sb¡¡µÄ´úÂ롪¡ª´´½¨Ò»¸öStringBuffer£¬²¢Óá¡append£¨£©¡¡

½«ÐÂ×Ö·ûÖ±½Ó¼ÓÈë¡¡StringBuffer¡¡¶ÔÏ󣨶ø²»ÊÇÿ´Î¶¼²úÉúжÔÏ󣩡£¾¡¹ÜÕâÑù×ö¸üÓÐЧ£¬µ«²»ÖµµÃÿ´Î¶¼´´¡¡

½¨Ïó¡¨abc¡¨ºÍ¡¨def¡¨ÕâÑùµÄÒýºÅ×Ö´®£¬±àÒëÆ÷»á°ÑËüÃǶ¼×ª»»³É¡¡String¡¡¶ÔÏó¡£ËùÒÔ¾¡¹ÜStringBuffer¡¡ÌṩÁË¡¡

¸ü¸ßµÄЧÂÊ£¬µ«»á²úÉú±ÈÎÒÃÇÏ£ÍûµÄ¶àµÃ¶àµÄ¶ÔÏ󡣡¡¡¡



12¡£4¡£4¡¡String¡¡ºÍ¡¡StringBuffer¡¡Àà¡¡¡¡



ÕâÀï×ܽáÒ»ÏÂͬʱÊÊÓÃÓÚString¡¡ºÍStringBuffer¡¡µÄ·½·¨£¬ÒÔ±ã¶ÔËüÃÇÏ໥¼äµÄ¹µÍ¨·½Ê½ÓÐÒ»¸öÓ¡Ïó¡£ÕâЩ¡¡

±í¸ñ²¢Î´°Ñÿ¸öµ¥¶ÀµÄ·½·¨¶¼°üÀ¨½øÈ¥£¬¶øÊÇ°üº¬ÁËÓë±¾´ÎÌÖÂÛÓÐÖØÒª¹ØϵµÄ·½·¨¡£ÄÇЩÒѱ»¸²¸ÇµÄ·½·¨Óá¡

µ¥¶ÀÒ»ÐÐ×ܽᡣ¡¡¡¡

Ê×ÏÈ×ܽáString¡¡ÀàµÄ¸÷ÖÖ·½·¨£º¡¡¡¡

¡¡¡¡

·½·¨¡¡¡¡×Ô±äÁ¿£¬¸²¸Ç¡¡ÓÃ;¡¡¡¡

¡¡¡¡

¹¹½¨Æ÷¡¡Òѱ»¸²¸Ç£ºÄ¬ÈÏ£¬String£¬StringBuffer£¬char¡¡Êý×飬byte¡¡Êý×é¡¡´´½¨String¡¡¶ÔÏó¡¡¡¡

length£¨£©¡¡ÎÞ¡¡String¡¡ÖеÄ×Ö·ûÊýÁ¿¡¡¡¡



¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡374¡¡


¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­Page¡¡376¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­

charAt£¨£©¡¡int¡¡Index¡¡Î»ÓÚString¡¡ÄÚij¸öλÖõÄchar¡¡¡¡

getChars£¨£©£¬getBytes¡¡¿ªÊ¼¸´ÖƵÄÆðµãºÍÖյ㣬ҪÏòÆäÖи´ÖÆÄÚÈݵÄÊý×飬¶ÔÄ¿±êÊý×éµÄÒ»¸öË÷Òý¡¡½«¡¡char¡¡

»òbyte¡¡¸´ÖƵ½ÍⲿÊý×éÄÚ²¿¡¡¡¡

toCharArray£¨£©¡¡ÎÞ¡¡²úÉúÒ»¸öchar£§£§£¬ÆäÖаüº¬ÁËString¡¡ÄÚ²¿µÄ×Ö·û¡¡¡¡

equals£¨£©£¬equalsIgnoreCase£¨£©¡¡ÓÃÓڶԱȵÄÒ»¸ö¡¡String¡¡¶ÔÁ½¸ö×Ö´®µÄÄÚÈݽøÐеȼÛÐÔ¼ì²é¡¡¡¡

pareTo£¨£©¡¡ÓÃÓڶԱȵÄÒ»¸öString¡¡½á¹ûΪ¸º¡¢Áã»òÕý£¬¾ßÌåÈ¡¾öÓÚString¡¡ºÍ×Ô±äÁ¿µÄ×Öµä˳Ðò¡£×¢Òâ´ó¡¡

дºÍСд²»ÊÇÏàµÈµÄ£¡¡¡¡¡

regionMatches£¨£©¡¡Õâ¸öString¡¡ÒÔ¼°ÆäËûString¡¡µÄλÖÃÆ«ÒÆ£¬ÒÔ¼°Òª±È½ÏµÄÇøÓò³¤¶È¡£¸²¸Ç¼ÓÈëÁË¡°ºöÂÔ´ó¡¡

Сд¡±µÄÌØÐÔ¡¡Ò»¸ö²¼¶û½á¹û£¬Ö¸³öÒª¶Ô±ÈµÄÇøÓòÊÇ·ñÏàͬ¡¡¡¡

startsWith£¨£©¡¡¿ÉÄÜÒÔËü¿ªÍ·µÄString¡£¸²¸ÇÔÚ×Ô±äÁ¿Àï¼ÓÈëÁËÆ«ÒÆ¡¡Ò»¸ö²¼¶û½á¹û£¬Ö¸³öString¡¡ÊÇ·ñÒÔÄÇ¡¡

¸ö×Ô±äÁ¿¿ªÍ·¡¡¡¡

endsWith£¨£©¡¡¿ÉÄÜÊÇÕâ¸ö¡¡String¡¡ºó׺µÄÒ»¸ö¡¡String¡¡Ò»¸ö²¼¶û½á¹û£¬Ö¸³ö×Ô±äÁ¿ÊDz»ÊÇÒ

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

Äã¿ÉÄÜϲ»¶µÄ