String 도 + 혹은 concat() 을 통해 문자열 추가 가능String 인스턴스가 새롭게 생성되며, 공간 낭비와 속도 저하 발생.append(), delete() 동작이 발생하면, 동일 객체 내에서 문자열 크기 변경을 통해 진행equals() 를 통해 비교equals() 를 오버라이딩하지 않으며, 이로인해 == 연산과 동일toString() 처리를 통해 String 변경 후, equals() 비교thread safe / StringBuilder는 thread unsafe| String | StringBuffer | StringBuilder | |
|---|---|---|---|
| 가변 여부 | 불변 | 가변 | 가변 |
| 동등 비교 방식 | equals() | String으로 변경 후 equals() 비교 | String으로 변경 후 equals() 비교 |
| 스레드 세이프 | O | O | X |
| 연산 속도 | 느림 | 빠름 | 매우 빠름 |
출처
- String vs StringBuffer vs StringBuilder:
Inpa Dev-자바 String/StringBuffer/StringBuilder 차이점 & 성능 비교