String | StringBuffer | StringBuilder | |
---|---|---|---|
์ ์ฅ ๊ณต๊ฐ | String pool | Heap | Heap |
์์ ๊ฐ๋ฅ ์ฌ๋ถ | X(Immutable) | O(Mutable) | O(Mutable) |
Thread Safe | O | O | X |
๋๊ธฐํ Synchromized | O | O | X |
์ฑ๋ฅ | ๋น ๋ฆ | ๋๋ฆผ | ๋น ๋ฆ |
String ๊ฐ์ฒด๋ ํ๋ฒ ๊ฐ์ด ํ ๋น๋๋ฉด ๊ทธ ๊ณต๊ฐ์ ๋ณํ์ง ์์ต๋๋ค.
+
์ฐ์ฐ์ ๋๋ concat
๋ฉ์๋๋ฅผ ํตํด ๋ค๋ฅธ ๋ฌธ์์ด์ ์ถ๊ฐํ๋๋ผ๋ ๊ธฐ์กด ๋ฌธ์์ด์ ๋ถ์ด๋ ๊ฒ์ด ์๋๋ผ,
์๋ก์ด String ๊ฐ์ฒด๋ฅผ ๋ง๋ ํ ์ String ๊ฐ์ฒด์ ์ฐ๊ฒฐ๋ ๋ฌธ์์ด์ ์ ์ฅํ๊ณ ๊ทธ ๊ฐ์ฒด๋ฅผ ์ฐธ์กฐํ๋๋ก ํฉ๋๋ค.
์ฆ String ํด๋์ค ๊ฐ์ฒด๋ Heap ๋ฉ๋ชจ๋ฆฌ ์์ญ์ ์์ฑ๋๊ณ ํ๋ฒ ์์ฑ๋ ๊ฐ์ฒด์ ๋ด๋ถ ๋ด์ฉ์ ๋ณํ์ํฌ ์ ์์ต๋๋ค.
์ฃผ๋ก ๋ฌธ์์ด ์ฐ์ฐ์ด ์ ๊ณ ๋ฉํฐ์ค๋ ๋ ํ๊ฒฝ์ผ ๊ฒฝ์ฐ ์ฌ์ฉํฉ๋๋ค.
์ฃผ๋ก ๋ฌธ์์ด ์ฐ์ฐ์ด ๋ง๊ณ ๋ฉํฐ์ค๋ ๋ ํ๊ฒฝ์ผ ๊ฒฝ์ฐ ์ฌ์ฉํฉ๋๋ค.
StringBuffer๋ ๊ฐ๋ณ์ฑ์ ๊ฐ์ง๊ธฐ ๋๋ฌธ์ append()
, delete()
์ ๊ฐ์ API๋ฅผ ์ด์ฉํ์ฌ ๋์ผ ๊ฐ์ฒด ๋ด ๋ฌธ์์ด์ ๋ณ๊ฒฝํ๋ ๊ฒ์ด ๊ฐ๋ฅํฉ๋๋ค.
๋ํ ๋๊ธฐํ๋ฅผ ์ง์ํ์ฌ ๋ฉํฐ์ค๋ ๋ ํ๊ฒฝ์์ ์์ (thread-safe)ํ๋ค๋ ์ฅ์ ์ ๊ฐ์ง๊ณ ์์ต๋๋ค.
์ฃผ๋ก ๋ฌธ์์ด ์ฐ์ฐ์ด ๋ง๊ณ ๋จ์ผ ์ค๋ ๋์ด๊ฑฐ๋ ๋๊ธฐํ๋ฅผ ๊ณ ๋ คํ์ง ์์๋ ๋๋ ๊ฒฝ์ฐ ์ฌ์ฉํฉ๋๋ค.
StringBuffer์ ๋์ผํ๊ฒ ๊ฐ๋ณ์ฑ์ ๊ฐ์ง๋ง, ๋๊ธฐํ๋ฅผ ์ง์ํ์ง ์์ต๋๋ค.
๋ฐ๋ผ์ ๋ฉํฐ์ค๋ ๋ ํ๊ฒฝ์์ ์ฌ์ฉํ๋ ๊ฒ์ ์ ํฉํ์ง ์์ง๋ง, ๋จ์ผ ์ค๋ ๋์์๋ StringBuffer๋ณด๋ค ์ฑ๋ฅ์ด ์ข์ต๋๋ค.