String Class의 문제점
String 클래스에서 + 연산자를 사용해서 간단하게 문자열을 추가할 수 있다.
String str1 = "Hellow";
String str2 = " World";
String str3 = str1 + str2;
System.out.println(str3);
// 결과 : Hellow World
직관적으로 이해하기 쉽지만, 이 코드가 실제 수행될 땐 StringBuffer를 사용해 아래와 같이 해석되고 수행된다.
String str1 = "Hellow";
String str2 = " World";
String str3 = new StringBuffer().append(str1).append(str2).toString();
System.out.println(str3);
// 결과 : Hellow World
이렇게 짧은 코드에선 문제가 없지만, 만약 반복문을 사용해 아주 많은 String을 더하게 된다면?
new StringBuffer 연산자를 1000번 호출하게 되고, 이는 수행 속도를 많이 늦출 수 있다.
String str1 = "";
for(int i = 0; i < 1000; i++) {
str1 = str1 + "*";
}
따라서 많은 양의 문자열을 더하는 상황에선 StrungBuffer의 append함수를 직접 사용하는 게 더 올바른 방법이다.
StringBuffer sb = new StringBuffer();
for(int i = 0; i < 1000; i++){
sb.append("*");
}'코딩 > JAVA 공부' 카테고리의 다른 글
| [JAVA} 가변인수, Wrapper Class (0) | 2023.04.09 |
|---|---|
| 논리 연산자 &, |와 &&, ||의 차이 (0) | 2023.04.07 |
| [Modern Java] Functional Interface (0) | 2022.12.08 |
| [객체지향] 의존성을 이용해 설계 진화시키기 (0) | 2022.12.03 |
| [JAVA] 자바의 정석 _ 스트림(Stream) (0) | 2022.10.29 |