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는 동기화를 지원하여 멀티쓰레드 환경에서 안전성을 가지고 있다.
'JAVA' 카테고리의 다른 글
[JAVA] Array와 ArrayList의 차이 (0) | 2021.03.12 |
---|---|
[JAVA] == 와 equals의 차이점 (0) | 2021.03.11 |
[JAVA] Call By Value / Call By Reference (0) | 2021.03.11 |
[JAVA] 쓰레드(Thread) 네모박스 튕기기 - 3 (0) | 2020.10.03 |
[JAVA] 쓰레드(Thread) -2 (0) | 2020.10.03 |