KnP House for Daily

String과 StringBuilder / StringBuffer 차이 본문

Programming/IT기초 이모저모

String과 StringBuilder / StringBuffer 차이

K.ung 2015.04.23 23:38

자바언어기반의 프로젝트를 할때 문자열 다루는 일이 허다하다.


하지만 어떤 기준으로 사용할지에 대해선 생각하지 않고 아무거나 가져다 쓰는 경우가 있었다.


또한 면접질문에 종종 나오는 다음 3가지 문자열 방법의 차이점을 알아보쟈!!!




[String , Stringbuilder , Stringbuffer]


1) String

- 기본적으로 String은 Immutable(불변의) 객체 라고 한단다.

-->>불변객체는 변경이 안되므로, 새로운 문자열을 ++++++ 하게 되면 새롭게 reference가 변경되고 기존의 객체는 GC되고 다시 새롭게 변경된 문자열을 기존의 reference에 할당한다 결국 performance가 좋지 않을듯..

- String str = "Hello"; 하면 Constant String Pool에 store됨

- thread-safe 하다.(불변객체여서..)


2) Stringbuilder

- thread safe 하지 않으므로, single thread내에서만 사용해야한다.

-->>아니라면 synchronized 처리를...

- 원본을 수정 하는 방식, 

- Heap에 store 된다.

- performance는 젤 빠르다..


3) Stringbuffer

- thread safe 하다.

- Heap에 store

- 동시성 고려해서 빠르기를 원한다면 이것을???!!?




p.s. 개인 공부 소장용이므로 참고만 해주세요...

저작자 표시 비영리 변경 금지
신고

'Programming > IT기초 이모저모' 카테고리의 다른 글

Soap 과 Rest의 장단점  (0) 2015.04.24
String과 StringBuilder / StringBuffer 차이  (0) 2015.04.23
0 Comments
댓글쓰기 폼