728x90
반응형
성능 우선
StringBuilder > StringBuffer >>> String
1. 단순 조회 : String
2. Multi Thread : StringBuffer(안전) + 잦은 수정
3. Single Thread : StringBuilder(빠름) + 잦은 수정
- String
[단점]
- 객체 내부 데이터 수정 불가능으로 새로운 객체를 생성
> 수정을 거듭할수록 객체 수 증가로 인한 성능 저하 야기
[장점]
- Buffer, Builder 보다 초기 리소스 적으며 크기 고정으로 단순 조회 연산이 빠르다.
- 불변성을 가지기 때문에 Multi Thread 환경에서 안전(StringBuffer와 동일) - StringBuffer
- 동기화 지원으로 Multi Thread 환경에서 안전
- ConcurrentModificationException 방지
(Multi Thread 환경 다른 Thread가 순회하는 객체를 수정) - StringBuilder
- 동기화 미지원으로 Multi Thread 비적합
- 동기화 고려하지 않는 만큼 Single Thread에서의 성능은 StringBuffer보다 좋다 - Multi Thread / Single Thread
- 나머지는 for문 만번 돌려보자
//Multi Thread 환경
public class Test{
StringBuffer b;
public Test(){
b = new StringBuffer();
}
public String someMethod(){
b.append("Some Method");
return(b.toString());
}
}
728x90
반응형
'Java' 카테고리의 다른 글
로그 쿼리 확인(log4j/logback) (0) | 2022.12.27 |
---|---|
Java Thread (예제 newSingleThreadScheduledExecutor) (0) | 2022.06.15 |
Runnable JAR Export + Window Scheduler (0) | 2022.05.31 |