[Java] String vs StringBuilder vs StringBuffer

원지윤·2023년 6월 3일
0

java공부

목록 보기
4/4

String  vs  StringBuffer/StringBuilder

우선 String과 StringBuffer/StringBuilder의 가장 큰 차이는 String은 immutable(불변)이고 StringBuffer/StringBuilder는 mutable(가변)이라는 것입니다.

그래서 String은 값이 변경되더라도 실제 값은 메모리 영역에 Gabege로 남아있고, 새로운 인스턴스를 생성하여 그 주소를 가리키게 됩니다.

하지만 StringBuffer/StringBuilder는 append() delete() 와 같은 메서드를 통해서 동일 객체내에서 문자열을 변경할 수 있습니다.

따라서 문자열의 추가,수정,삭제가 빈번하게 발생할 경우라면 String 클래스가 아닌 StringBuffer/StringBuilder를 사용해야합니다.

StringBuffer  vs  StringBuilder

동일한 API를 가지고 있는 StringBuffer, StringBuilder의 차이점동기화의 유무입니다.

StringBuffer는 동기화 키워드를 지원하여 멀티쓰레드 환경에서 안전(thread-safe) 합니다.

하지만 StringBuilder는 동기화를 지원하지 않기 때문에 멀티쓰레드 환경에서 사용하는 것은 적합하지 않지만 동기화를 고려하지 않는 만큼 단일쓰레드에서의 성능은 StringBuffer 보다 뛰어납니다.

String vs StringBuilder vs StringBuffer 정리

[참고]

https://ifuwanna.tistory.com/221

0개의 댓글