์์ํ์ ํ ์์ญ ๋ด๋ถ์ ๋ฌธ์์ด ๊ฐ์ฒด๋ฅผ ์ํด ๋ณ๋๋ก ๊ด๋ฆฌํ๋ ์ ์ฅ์์ ๋๋ค. ๋ง์ฝ ์์ํ์ ๊ฐ์ ๊ฐ์ ๊ฐ์ง String ๊ฐ์ฒด๊ฐ ์กด์ฌํ๋ฉด ๊ทธ ๊ฐ์ฒด์ ์ฃผ์๊ฐ์ ์ฐธ์กฐํ๋ฉฐ, ๊ฐ์ ์ฐพ์ง ๋ชปํ๋ฉด ์์ํ์ ํด๋นํ๋ ๊ฐ์ ๊ฐ์ง ๋ฌธ์์ด ๊ฐ์ฒด๋ฅผ ์์ฑํ๊ณ ๊ทธ ์ฃผ์๊ฐ์ ๋ฐํํฉ๋๋ค. ๋ฆฌํฐ๋ด๋ก ์ ์ธํ ๊ฒฝ์ฐ ๋ด๋ถ์ ์ผ๋ก String์ intern( ) ๋ฉ์๋๋ฅผ ํธ์ถํฉ๋๋ค.
๋ฆฌํฐ๋ด("")๋ก String ๊ฐ์ฒด๋ฅผ ์์ฑํ๋ฉด JVM์ ๋จผ์ ์์ํ์ ํ์ํฉ๋๋ค. ๋ง์ฝ ๊ฐ์ ๊ฐ์ ๊ฐ์ง String ๊ฐ์ฒด๋ฅผ ์ฐพ์ผ๋ฉด ๊ทธ ๊ฐ์ฒด์ ์ฃผ์ ๊ฐ์ ๋ฐํํด์ ์ฐธ์กฐํ๋ฉฐ, ์ด๋ฅผ ์ฐพ์ง ๋ชปํ ๊ฒฝ์ฐ ์์ํ์ ํด๋น ๊ฐ์ ๊ฐ์ง String ๊ฐ์ฒด๋ฅผ ์์ฑํ๊ณ ๊ทธ ์ฃผ์ ๊ฐ์ ๋ฐํํฉ๋๋ค.
์ด๋ intern( ) ๋ฉ์๋๋ฅผ ํตํด ๋ฑ๋ก๋๋๋ฐ์, String.equals( ) ๋ฐํ๊ฐ์ด true์ธ String ๊ฐ์ฒด๊ฐ ์กด์ฌํ๋ ๊ฒฝ์ฐ ํด๋น ๊ฐ์ฒด๋ฅผ ๋ฐํํ๊ณ , ์กด์ฌํ์ง ์๋ ๊ฒฝ์ฐ ํด๋น ๊ฐ์ฒด๋ฅผ ํ์ ์ถ๊ฐํ ํ ๋ฐํํฉ๋๋ค.
Java 7 ์ด์ ๋ฒ์ ์์๋ ์์ํ์ด Perm ์์ญ์ ์กด์ฌํ์ง๋ง ์ดํ ๋ถํฐ๋ Heap ์์ญ์ ์กด์ฌํฉ๋๋ค. ๋ฐ๋ผ์ ์ด ์์ญ์ ์กด์ฌํ๋ String ๊ฐ์ฒด๋ค์ GC์ ๋์์ด ๋ฉ๋๋ค.
'๐ฅDEV > Java || Spring' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
@Embedded์ ๊ธฐ๋ณธ ์์ฑ์ (0) | 2022.07.14 |
---|---|
๋ธ๋ฆฟ์ง ํจํด (0) | 2022.07.10 |
์ฑ๊ธํค๊ณผ ๋ฌธ์ ์ (0) | 2022.07.10 |
์ผ๊ธ ์ปฌ๋ ์ ๊ณผ ์ฃผ์์ฌํญ (0) | 2022.02.22 |
TreeSet (0) | 2022.02.22 |
๋๊ธ