728x90
반응형

StringBuffer와 StringBuilder 공통점

String의 단점을 보완한 클래스

내부에 버퍼를 가지고 있어서 버퍼에 메모리를 임시로 저장했다가 사용함

버퍼 내부에서 추가, 수정, 삭제 작업을 할 수 있음

 

String의 단점
내부 문자열을 수정할 수 없음
문자열에 +연산자를 사용해 문자를 더하면 새로운 객체 생성됨
새로운 객체가 만들어져 재참조 하게 되기에 연산이 있을 때마다 메모리에 객체가 생성된다는 단점이 있음

 


StringBuffer와 StringBuilder 차이점

동기화 여부에 차이점이 있음

StringBuffer는 각 메서드 별로 Synchronized keyword가 존재하여 멀티스레드 환경에서도 동기화를 지원

StringBuilder는 동기화를 보장하지 않기에 단일스레드 환경에서 사용하는 것이 좋음

👉 단일스레드 환경에서 StringBuffer를 사용할 순 있지만 동기화 관련 처리로 인해 StringBuilder에 비해 성능이 안좋음

 

 


사용 환경

String StringBuffer StringBuilder
• 짧은 문자열 더하는 경우
문자열 연산지 적고 멀티스레드 환경일 경우
 스레드에 안전한 프로그램 혹은 개발 중인 시스템의 부분이 스레드에 안전한지 모르는 경우
 문자열 연산이 많고 멀티스레드 환경일 경우
 스레드에 안전한지 전혀 관계없는 프로그램 개발하는 경우
문자열 연산이 많고 단일스레드이거나 동기화를 고려하지 않아도 되는 경우

 

반응형
복사했습니다!