<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()를 사용해야 한다.
'JAVA(STS)' 카테고리의 다른 글
[java] java network, URL로부터 얻은 정보 합치기 - StringBuilder (0) | 2022.02.06 |
---|---|
[java] SPS(spring tool suite)에서 프로젝트에 라이브러리 추가하기 (0) | 2022.02.05 |
[java] java network, 특정 URL로부터 정보를 얻어오는 방법 1 - 접근/읽어오기 (0) | 2022.02.05 |
[java] jsp, json 웹페이지에 데이터 값 띄우기 1 - getWriter() / 헤더 코드 포함 (0) | 2022.02.05 |
[java] 클래스(class), 객체(object), 인스턴스(instance)의 개념 간단 정리 (0) | 2022.02.05 |