[Ŭ·¡½º] String, StringBuilder, StringBufferÀÇ Â÷ÀÌ
C¿¡¼ ¹®ÀÚ¿À» ´Ù·ç±â À§Çؼ´Â char¹è¿À» ¿øÇÏ´Â ¹®ÀÚ¿ÀÇ ±æÀ̸¸Å ¼±¾ðÇؼ ÁøÂ¥ ¸»±×´ë·Î '¹®ÀÚµéÀÇ ¹è¿'·Î »ç¿ëÇØ¾ß Çß´Ù. ¹Ý¸é ÀÚ¹Ù¿¡¼´Â ÀÌ·± ¹ø°Å·Î¿î °úÁ¤À» º¸ÀÌÁö ¾Ê°í ¹®ÀÚ¿À» ¹Ì¸® ¸¸µé¾î³õÀº Ŭ·¡½º°¡ Àִµ¥ ÀÌ°Ô ¹Ù·Î String Ŭ·¡½ºÀÌ´Ù.
±×·±µ¥ ÀÌ StringÀ̶ó´Â °ÍÀº immutableÀÇ ¼Ó¼ºÀ» Áö´Ñ´Ù. ¹«½¼ ¶æÀ̳ÄÇÏ¸é ¹Ù·Î ´õÇØÁö°Å³ª »©Áö´Â µî °è»êÀÌ ºÒ°¡´ÉÇÑ º¯°æºÒ°¡ °ª À̶ó´Â ¾ê±âÀÌ´Ù.
½±°Ô ´ÙÀ½ÀÇ ¿¹¸¦ µé¾îº¸ÀÚ.
µÎ °ª¿¡ ¸ðµÎ 1¾¿À» ´õÇß´Ù. °á°ú´Â ¾î¶»°Ô µÉ±î?
º¸´Ù½ÃÇÇ int¿¡ ´ëÇÑ ¿¬»ê °á°ú´Â 3+1 = 4°¡ µÇÁö¸¸, String¿¡ ´ëÇÑ ¿¬»ê °á°ú´Â ´Ü¼øÈ÷ 3µÚ¿¡ 1À» À̾îºÙÀÎ 31ÀÌ Ãâ·Â µÇ¾ú´Ù.
ÀÌ¿Í°°Àº ¼Ó¼ºÀ» ¹Ù·Î String immutableÀ̶ó ÇÏ´Â °ÍÀÌ´Ù.
±×·±µ¥ ¸¸¾à ´ÙÀ½°ú °°ÀÌ ¿ì¸®°¡ ÇØ´ç String°ª µÚ¿¡ ¹®ÀÚ¸¦ °è¼Ó ºÙ¿©°¡¸ç »õ·Î¿î ¹®ÀÚ¸¦ ¿Ï¼ºÇØ¾ß ÇÏ´Â »óȲ¿¡ ÀÖ´Ù°í Çغ¸ÀÚ.
¹°·Ð ½ÇÇà °á°ú´Â Àß ³ª¿Â´Ù.
±×·¯³ª ÀÌ Äڵ尡 ¾î¶»°Ô µ¹¾Æ°¡´Â °ÍÀÎÁö ¾Ë¾Æº»´Ù¸é ÀÌ ¹æ¹ýÀ» Àß ¾²Áö ¾Ê°Ô µÉ °ÍÀÌ´Ù.
µ¹¾Æ°¡´Â ¹æ½ÄÀº ¹Ù·Î ¾Æ·¡¿Í °°´Ù
Áï, +¿¬»êÀÚ¸¦ ¼öÇàÇØ ¹®ÀÚ¸¦ ºÙÀÏ ¶§ ¸¶´Ù ¸Å¹ø ÀÌÀü °ªÀº ¾²·¹±â °ªÀÌ µÇ¾î °¡ºñÁö Ä÷ºÅÍ¿¡ ÀÇÇØ È¸¼öµÇ°í, »õ·Î¿î °ªÀÌ »ý¼ºµÇ´Â °ÍÀÌ´Ù.
½±°Ô¸»ÇÏ¸é ¸Å¹ø »õ·Î ¸¸µç´Ù´Â ¾ê±âÀÌ´Ù. ´ëÃæ »ý°¢ÇغÁµµ ¾ó¸¶³ª ºñÈ¿À²ÀûÀÎÁö ¾Ë ¼ö ÀÖ´Ù.
±×·¸´Ù¸é ÀÌ ºñÈ¿À²Àû ¹®Á¦¸¦ ÇØ°áÇÒ ¹æ¹ýÀÌ ¾øÀ»±î?
ÀÌ´Â ¹Ù·Î StringBuilder Ŭ·¡½º¿Í StringBufferŬ·¡½º¸¦ ÀÌ¿ëÇØ ÇØ°áÇÒ ¼ö ÀÖ´Ù.
µÎ Ŭ·¡½º ¸ðµÎ StringŬ·¡½ºÀÇ ¸Þ¼Òµå¸¦ ¿À¹ö¶óÀ̵ù ÇÑ °ÍÀ¸·Î StringŬ·¡½º¿Í´Â ´Ù¸£°Ô mutableÇÑ ¼ºÁúÀ» Áö´Ñ´Ù.
»ç¿ë ¹æ¹ýÀº ¾Æ·¡¿Í °°´Ù.
°ú¿¬ ÀÌ°Ô ¹«¾ùÀÌ ´Ù¸¦±î? ¹Ù·Î ¼ÓµµÀÌ´Ù. ÀÌÀü¿¡´Â »õ·Î¿î °´Ã¼¸¦ ¸Å¹ø »ý¼ºÇØ ³»´Â °úÁ¤ÀÌ¿´Áö¸¸ StringBuilder´Â ¸»±×´ë·Î append() ¸Þ¼Òµå¸¦ ÀÌ¿ëÇØ ÁøÂ¥·Î µÚ¿¡ °è¼Ó À̾îºÙÀÌ´Â ¹æ½ÄÀÌ´Ù.
±×·¸´Ù¸é StringBuffer´Â ¹«¾ùÀÌ ´Ù¸¦±î? ÀÏ´Ü ´ëüÀûÀ¸·Î StringBuilder¿Í µ¿ÀÏÇÏÁö¸¸ ÇÑ°¡Áö Â÷ÀÌÁ¡ÀÌ ÀÖ´Ù¸é ¹Ù·Î µ¿±âÈ°¡ °¡´ÉÇÏ´Ù´Â °ÍÀÌ´Ù. µû¶ó¼ ¸ÖƼ¾²·¹µùÀ» ÇÏ´Â ÇÁ·Î±×·¥À» ÀÛ¼ºÇÒ ¶§´Â StringBuffer¸¦ »ç¿ëÇÏ´Â °ÍÀÌ ³´´Ù. »ç¿ë ¹æ¹ýÀº ¾Æ·¡¿Í °°´Ù.
ÀÌÁ¦ ¼Óµµºñ±³ÀÇ Â÷·ÊÀε¥ ¾ËÆĺª 26ÀÚ´Â ³Ê¹« ª´Ù. µû¶ó¼ °ø¹é µÚ¿¡ 1~100,000±îÁö À̾îºÙÀÌ´Â
Äڵ带 Â¥¼ ¼Óµµ¸¦ ºñ±³Çغ¸µµ·Ï ÇÏÀÚ
º¸´Ù½ÃÇÇ ¼ÓµµÂ÷ÀÌ°¡ ±Ø¸íÇÏ´Ù.(StringBuffer°¡ µ¿±âÈ °ü·Ã ¿ä¼Ò ¶§¹®¿¡ StringBuilderº¸´Ù ¾à°£ ´À¸®´Ù.)
µû¶ó¼ ´Ü¼øÈ÷ ½ºÆ®¸µ µÚ¿¡ ¹®ÀÚ³ª ¹®ÀÚ¿ µîÀ» ÀÌ¾î ºÙ¿©¾ß µÇ´Â °æ¿ì´Â +¿¬»êÀÚ º¸´Ù´Â StringBuilder³ª StringBuffer¸¦ ÀÌ¿ëÇϵµ·Ï ÇÏÀÚ.