이건 저번에 물어보길래 대답을 잘 한 뒤, 유입을 위해 작성해봄.
1) String
: 얘는 사실 GC를 많이 유발시키는 애인데,
String temp = "ㅇㅅㅇ";
한 뒤에 temp = "ㅇㅅㅇ~"; 를 만들면, ㅇㅅㅇ에다가 ~를 붙이는 게 아니라,
"ㅇㅅㅇ~"를 메모리에 만들고, "ㅇㅅㅇ"를 GC 시키는 구조라서,
문자열 자체가 많이 바뀌는 경우에는 비추천이나, 멀티쓰레드 환경에서는 안정적이다.
2) StringBuilder
: 얘는 간혹 가다가 프로젝트에서 보이는 애일 텐데,
StringBuilder sb = new StringBuilder("ㅇㅅㅇ");
sb.append("~");를 하면 아까 만들어 놓은 ㅇㅅㅇ에다가 ~를 붙이기 때문에
문자열 자체가 많이 바뀌는 경우에 쓰인다.
얘는 동기화를 지원하지 않아서 단일 쓰레드에서는 성능이 뛰어나다.
3) StringBuffer
: 얘도 StringBuilder랑 비슷한 애인데, 얘는 멀티쓰레드 환경에서 안전하다고 한다.
그림 출처 : https://ifuwanna.tistory.com/221
근데 StringBuffer는 생각보다 못 본 거 같음...
사족.
써놓고 맞나 확인하다가 java11 String API 문서 좀 읽어봄.
strip 이 나왔군...코딩 테스트에 활용하겠습니다.
댓글
댓글 쓰기