String

-String은 불변의 속성을 갖는다.

-String클래스는 불변하기 때문에 문자열을 수정하는 시점에 새로운 String인스턴스가 생성된다.

-문자열의 빈번한 추가, 수정, 삭제의 연산이 이루어지면 Heap영역에 많은 임시의 Garbage가 생성되며,

  Heap Memory부족으로 인한 어플리케이션 성능 저하로 이어진다.

 

 

StringBuilder / StringBuffer

-이러한 String의 문제를 해결하기 나온 것이 StringBuilder와 StringBuffer이다.

-StringBuilder와 StringBuffer 클래스는 가변의 속성을 갖는다.

-append(), delete()와 같은 메서드를 이용하여 동일한 객체내에서 문자열을 변경할 수 있다.

-문자열의 빈번한 추가, 수정, 삭제와 같은 연산을 할 때는 StringBuilder와 StringBuffer를 사용하는것이 유리하다.

 

 

StringBuilder VS StringBuffer

<StringBuilder>

-StringBuilder와 StringBuffer의 차이는 동기화의 유무이다.

-StringBuilder는 동기화를 지원하지 않아 멀티쓰레드 환경에서 사용하는 것은 적합하지 않지만 단일쓰레드 환경에서는   StringBuffer보다 뛰어나다.

 

<StringBuffer>

-StringBuffer는 동기화를 지원하여 멀티쓰레드 환경에서 안전성을 가지고 있다.

+ Recent posts