-
TL; DR
문자열 연결 연산자(+)
String str = "a";
for (int i = 0; i < 100_000; i++) {
str += "a";
} StringBuilder 를 통한 문자열 조작
StringBuilder builder = new StringBuilder("a");
for (int i = 0; i < 100_000; i++) {
builder.append("a");
} // 10만번 실행(위)
String 연산자(+) 실행시간: 1339
StringBuilder 실행시간: 3
// 50만번 실행(아래)
String 연산자(+) 실행시간: 27293
StringBuilder 실행시간: 14 StringBuilder VS StringBuffer// StringBuffer 👉 synchronized 키워드가 있다.
@Override
public synchronized StringBuffer append(Object obj) {
toStringCache = null;
super.append(String.valueOf(obj));
return this;
}
// StringBuilder 👉 synchronized 키워드가 없다.
@Override
public StringBuilder append(Object obj) {
return append(String.valueOf(obj));
} 문자열 연산 속도 비교하지만 대부분의 상황에서
왜 IntelliJ 에서 StringBuilder 보다 String 을 추천하는거지?이유는?
단, 동적 문자열 연결은 (ex. loop문) StringBuilder 를 직접 생성해야 한다.StringBuilder result = new StringBuilder("data");
for (int i = 0; i < 100; i++) {
result.append("some more data");
} 참고자료 |
Beta Was this translation helpful? Give feedback.
Answered by
corock
Mar 14, 2023
Replies: 1 comment 1 reply
-
질문하려고 한 부분( 내용 잘 읽었습니다~ ㅎㅎ |
Beta Was this translation helpful? Give feedback.
1 reply
Answer selected by
coalong
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
질문하려고 한 부분(
StringBuilder
보다String
을 추천하는 이유)까지 정리하셨네요.String
/StringBuffer
/StringBuilder
클래스 간 비교나 장단점은 기술 면접에서도 자주 물어보는 주제 중 하나로 알고 있습니다.내용 잘 읽었습니다~ ㅎㅎ