String class
๋ฌธ์์ด์ ๋ค๋ฃจ๋ ํด๋์ค
๋ฌธ์์ด์ ๋ค๋ฃฐ ๋๋ String
ํด๋์ค๋ฅผ ์ฌ์ฉํ๋ฉฐ, ํน์ง์ ๋ค์๊ณผ ๊ฐ๋ค.
๋ฌธ์์ด์
char
๋ฐฐ์ด๋ก ๊ตฌ์ฑ๋์ด ์์ผ๋ฉฐ,String
ํด๋์ค๋char
๋ฐฐ์ด์ ๋ด๋ถ์ ์ผ๋ก ๊ฐ์ง๊ณ ์์๋ฌธ์์ด์ ์๋ ๊ฐ๋ณ ๋ฌธ์๋ ์ง์ ์์ธ์คํ ์ ์๊ณ , ํน์ ๋ฉ์๋(
charAt
)๋ฅผ ์ฌ์ฉํด์ผ ํจ๋ฌธ์์ด์ ๋ณํ ๋ถ๊ฐ๋ฅ(
immutable
)ํ๊ณ , ๋ณ๊ฒฝํ๋ ๋ฉ์๋๋ ์์ฒด๋ฅผ ๋ณ๊ฒฝํ๋ ๊ฒ์ด ์๋ ์๋ก์ด ๋ฌธ์์ด ์ธ์คํด์ค๋ฅผ ๋ฐํ
์ฃผ์ ๋ฉ์๋
charAt(int index)
๋ฌธ์์ด์์ index ์์น์ ๋ฌธ์๋ฅผ ๋ฐํ
int length()
๋ฌธ์์ด์ ๊ธธ์ด๋ฅผ ๋ฐํ
String substring(int from, int to)
๋ฌธ์์ด์์ ํด๋น ๋ฒ์์ ์๋ ๋ฌธ์์ด ๋ฐํ
String substring(int from)
๋ฌธ์์ด์์ ํด๋น ์์น๋ถํฐ ๋๊น์ง ๋ฌธ์์ด ๋ฐํ
String concat(String str)
๋ฌธ์์ด์ ๋ํด์ ์๋ก์ด ๋ฌธ์์ด ๋ฐํ
String replace(String old, String new)
๋ฌธ์์ด์์ old ๋ฌธ์์ด์ new ๋ฌธ์์ด๋ก ๋ฐ๊พผ ์๋ก์ด ๋ฌธ์์ด ๋ฐํ
String toLowerCase()
๋ฌธ์์ด์ ์๋ฌธ์๋ก ๋ฐ๊พผ ์๋ก์ด ๋ฌธ์์ด ๋ฐํ
String toUpperCase()
๋ฌธ์์ด์ ๋๋ฌธ์๋ก ๋ฐ๊พผ ์๋ก์ด ๋ฌธ์์ด ๋ฐํ
String trim()
๋ฌธ์์ด์ ์๋ค ๊ณต๋ฐฑ์ ์ ๊ฑฐํ ์๋ก์ด ๋ฌธ์์ด ๋ฐํ
String[] split(String regex)
๋ฌธ์์ด์ regex๋ฅผ ๊ธฐ์ค์ผ๋ก ๋๋ ๋ฌธ์์ด ๋ฐฐ์ด ๋ฐํ
boolean equals(Object obj)
๋ฌธ์์ด์ด ๊ฐ์์ง ๋น๊ต
int compareTo(String str)
๋ฌธ์์ด์ ์ฌ์ ์์ผ๋ก ๋น๊ต
int indexOf(String str)
๋ฌธ์์ด์์ str์ด ์ฒ์ ๋ํ๋๋ ์์น๋ฅผ ๋ฐํ
boolean startsWith(String prefix)
๋ฌธ์์ด์ด prefix๋ก ์์ํ๋์ง ํ์ธ
boolean endsWith(String suffix)
๋ฌธ์์ด์ด suffix๋ก ๋๋๋์ง ํ์ธ
boolean contains(String str)
๋ฌธ์์ด์ด str์ ํฌํจํ๋์ง ํ์ธ
boolean isEmpty()
๋ฌธ์์ด์ด ๋น์ด์๋์ง ํ์ธ
char[] toCharArray()
๋ฌธ์์ด์ ๋ฌธ์ ๋ฐฐ์ด๋ก ๋ณํ
๋ฌธ์์ด ๋น๊ต
String ํด๋์ค์ equals
String
ํด๋์ค์equals()
๋ฉ์๋๋Object
ํด๋์ค์equals()
๋ฉ์๋๋ฅผ ์ค๋ฒ๋ผ์ด๋ฉํ ๊ฒ์ด๋ค.String
ํด๋์ค์equals()
๋ฉ์๋๋ ๋ ๊ฐ์ฒด์ ๋ด์ฉ์ด ๊ฐ์์ง ๋น๊ตํ๋ค.
Constant Pool
JVM์ด ์์๋ ๋ ์์ฑ๋๋ ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ
์๋ฐ ์์คํ์ผ์ ํฌํจ๋ ๋ชจ๋ ๋ฌธ์์ด ๋ฆฌํฐ๋ด์ ์ปดํ์ผ ์์ ํด๋์ค ํ์ผ์ ์ ์ฅ๋๋๋ฐ, ์ด ๋ ๊ฐ์ ๋ด์ฉ์ ๋ฌธ์์ด ๋ฆฌํฐ๋ด์ ํ๋์ ๋ฌธ์์ด ์ธ์คํด์ค๋ฅผ ๊ณต์ ํ๊ฒ ๋๋ค. ํ ๋ฒ ์์ฑํ๋ฉด ๋ณ๊ฒฝํ ์ ์๋ ํน์ฑ์ ๊ฐ์ง๊ณ ์๊ธฐ ๋๋ฌธ์ด๋ค.
String์ ๋ฌธ์์ด์ ํ ๋นํ๊ฒ ๋์ ๋ JVM์ ์๋์ ๊ฐ์ ๊ณผ์ ์ ๊ฑฐ์น๋ค.
Constant Pool
์ ๊ฐ์ ๊ฐ์ด ์๋์ง ํ์์์ผ๋ฉด ํด๋น ์ธ์คํด์ค๋ฅผ ๋ฐํ
์์ผ๋ฉด ์๋ก์ด ์ธ์คํด์ค๋ฅผ ์์ฑํ๊ณ
Constant Pool
์ ์ ์ฅ
๋ง์ฝ new String()
์ ํตํด ๋ฌธ์์ด์ ์์ฑํ๊ฒ ๋๋ฉด, Constant Pool
์ ์ ์ฅ๋์ง ์๊ณ , ํญ์ ์ ๊ฐ์ฒด๋ฅผ ์์ฑํ๊ณ heap ์์ญ์ ์ ์ฅํ๊ฒ ๋๋ค.
StringBuffer & StringBuilder
๋ฌธ์์ด์ ๋ณ๊ฒฝํ ์ ์๋ ํด๋์ค
๊ธฐ์กด String ํด๋์ค๋ ๋ฌธ์์ด์ ๋ณ๊ฒฝํ ๋๋ง๋ค ์๋ก์ด ์ธ์คํด์ค๋ฅผ ์์ฑํ๊ณ , ๊ธฐ์กด ์ธ์คํด์ค๋ GC์ ๋์์ด ๋๋ค.
๋๋ฌธ์ ์ฑ๋ฅ ๋ฌธ์ ๊ฐ ๋ฐ์ํ ์ ์์ด ๋ฌธ์์ด์ ๋ณ๊ฒฝํ ๋๋ StringBuffer
๋ StringBuilder
๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ด ์ข๋ค.
StringBuffer
๋ด๋ถ์ ์ผ๋ก ๋ฌธ์์ด ํธ์ง์ ์ํ
buffer
๋ฅผ ๊ฐ์ง๊ณ ์์์์ฑ์๋ฅผ ํตํด ์ด๊ธฐ ์ฉ๋์ ์ง์ ํ ์ ์์ผ๋ฉฐ ๋ฒํผ์ ํฌ๊ธฐ๊ฐ ๋ถ์กฑํ ๊ฒฝ์ฐ ์๋์ผ๋ก ์ฆ๊ฐ
StringBuffer ๋ฌธ์์ด ๋น๊ต
StringBuffer ํด๋์ค์ equals ๋ฉ์๋๋ ์ค๋ฒ๋ผ์ด๋ฉํ์ง ์์ Object ํด๋์ค์ equals ๋ฉ์๋(==)๋ฅผ ์ฌ์ฉํ๊ฒ ๋๋ค.
๋ด๊ณ ์๋ ๋ฌธ์์ด์ ๋ฐํํ๋ toString()
์ ์ค๋ฒ๋ผ์ด๋ฉ ๋์ด ์์ด ํด๋น ๋ฉ์๋๋ฅผ ํตํด ๋น๊ต๊ฐ ๊ฐ๋ฅํ๋ค.
StringBuilder
thread safe
ํ StringBuffer์ ๋ฌ๋ฆฌthread unsafe
์ ๊ธฐ๋ฅ์ ์ ์ธํ๊ณ ๋ StringBuffer์ ๋์ผ
๋น๊ต
String : ๋ถ๋ณํ๊ธฐ ๋๋ฌธ์ ๋ฌธ์์ด ์ฐ์ฐ์ด ์ ์ ๊ฒฝ์ฐ ์ฌ์ฉ
StringBuffer : ๋ฌธ์์ด ์ฐ์ฐ์ด ๋ง๊ณ ๋ฉํฐ์ค๋ ๋์ธ ๊ฒฝ์ฐ ์ฌ์ฉ
StringBuilder : ๋ฌธ์์ด ์ฐ์ฐ์ด ๋ง๊ณ ๋จ์ผ์ค๋ ๋์ด๊ฑฐ๋ ๋๊ธฐํ๋ฅผ ๊ณ ๋ คํ์ง ์์๋ ๋ ๊ฒฝ์ฐ ์ฌ์ฉ
storage
String Pool
Heap
Heap
modify
X
O
O
thread safe
O
O
X
synchronized
O
O
X
์ฐธ๊ณ ์๋ฃ
Last updated
Was this helpful?