티스토리 뷰

String

 - 객체내 데이터 수정 불가능. return 만 가능 ( immutable 함)

 - String A = A + B  : 총 3개의 메모리 사용 (연산시 새로운 메모리가 할당되고 기존메모리는 GC대상이되기때문에 느림)


StringBuilder

 - AbstractStringBuilder 를 상속하여 구현됨

 - 동기화 지원 안됨.

 - 객체내 데이터의 수정이 가능 mutable 함)

 - capacity 지정가능. 단, capacity 가 확장될 때 오버로드 될 수 있음.

 - StringBuilder A.append("B")  : 총 1개의 메모리 사용 (한개의 메모리에서 변경이 되기때문에 빠름)


StringBuffer

 - AbstractStringBuilder 를 상속하여 구현됨

 - 클래스내 모든 함수에 synchronized 가 붙어있음. 멀티쓰레드에서 동기화 지원함. (때문에 StringBuilder보다 느림)

 - 객체내 데이터의 수정이 가능 mutable 함)

 - capacity 지정가능. 단, capacity 가 확장될 때 오버로드 될 수 있음.

 - StringBuffer A.append(B)  : 총 1개의 메모리 사용 (한개의 메모리에서 변경이 되기때문에 빠름)



[작성] devbible.tistory.com

댓글