[Java 동시성] Vector, ArrayList 차이와 StringBuffer, StringBuilder 차이
컬렉션과 문자열 처리에서 동기화 지원 여부에 따른 클래스들의 특징과 차이점을 설명합니다.
컬렉션 클래스 비교
Vector vs ArrayList
특성 | Vector | ArrayList |
---|---|---|
동기화 | 지원 | 미지원 |
성능 | 상대적 느림 | 상대적 빠름 |
스레드 안전성 | 안전 | 불안전 |
// 스레드 안전한 Vector 사용
Vector<String> vector = new Vector<>();
// 빠른 처리가 필요한 경우 ArrayList 사용
ArrayList<String> arrayList = new ArrayList<>();
문자열 처리 클래스 비교
StringBuffer vs StringBuilder
특성 | StringBuffer | StringBuilder |
---|---|---|
동기화 | 지원 | 미지원 |
성능 | 상대적 느림 | 상대적 빠름 |
스레드 안전성 | 안전 | 불안전 |
// 멀티스레드 환경에서 안전한 StringBuffer
StringBuffer buffer = new StringBuffer();
buffer.append("thread").append("safe");
// 단일스레드에서 빠른 StringBuilder
StringBuilder builder = new StringBuilder();
builder.append("fast").append("performance");
💡 선택 기준
- 멀티스레드 환경: Vector, StringBuffer
- 단일스레드 환경: ArrayList, StringBuilder
상황에 맞는 적절한 클래스 선택이 성능과 안정성의 핵심입니다.
댓글남기기