JAVA(STS)
[java] 대용량 문자열 처리 객체 StringBuilder() (대용량 문자열 합체시 유용한 객체)와 복합 연산자 "+=" 속도 비교
걍작
2022. 2. 5. 20:31
<java.lang.StringBuilder 를 활용한 대용량 문자열 처리>
- 복합연산자는 연산(+) 후 결과 값 확인하고 재 연산을 반복하는 반면, StringBuilder 혹은 StringBuffer는 값을 빠르게 쌓아서 한 번에 결과 값을 확인 하기 때문에 대용량 문자열을 빠르게 처리할 수 있다고 한다(단, StringBuilder를 활용하는 경우, 타입이 String으로 반환되는 것은 아니므로, 데이터를 활용할 때는 .toString()으로 타입 변환이 필요하다).
- "java"라는 4글자의 문자열을 10,000회 반복처리 하는 구문을 통해 속도 차이를 확인해보자.
# 복합연산자 (+=) 사용 코드
package test.com;
public class TeststringBuilder {
public static void main(String[] args) {
System.out.println("StringBuilder");
long startTime = System.currentTimeMillis();
String str = "";
for (int i = 0; i < 100000; i++) {
str = str + "java";
}
System.out.println("str.length():"+str.length());
System.out.println(System.currentTimeMillis()-startTime);
}
}
# 복합연산자 (+=) 실행 결과 >> 5035 밀리세컨즈
# StringBuilder() 사용 코드
package test.com;
public class TeststringBuilder {
public static void main(String[] args) {
System.out.println("StringBuilder");
long startTime = System.currentTimeMillis();
StringBuilder str = new StringBuilder();
for (int i = 0; i < 100000; i++) {
str.append("java");
}
System.out.println("str.length():"+str.length());
System.out.println(System.currentTimeMillis()-startTime);
}
}
# StringBuilder() 실행 결과 >> 5밀리세컨즈
# 결론
1. 복합연산자(5035) >> StringBuilder(5)로 약 1000배 빠르게 연산처리가 가능하다.
2. 많은 양의 데이터를 합쳐서 가져와야 할 때는 StringBuilder()를 사용해야 한다.