본문 바로가기
IT/Java

String, StringBuffer, StringBuilder 특징 및 차이점

by eddie_factory 2020. 3. 24.
반응형

String, StringBuffer, StringBuilder 세 가지 클래스는 모두 문자열을 처리하기 위한 클래스입니다.

 

String은 immutable(불변)하고 StringBuffer, StringBuilder는 mutable(가변)합니다.

따라서 String 클래스가 StringBuffer, StringBuilder 보다 느리고 메모리 관리 측면에서도 큰 차이를 보입니다.

 

1. String

String 클래스는 인스턴트 메모리 공간에 생성되며 그 메모리공간은 메모리 공간은 절대 변하지 않습니다.  

만약 생성된 String에 수정이 일어난다면,  새로운 인스턴스 메모리를 생성하여 그 값을 넣어줍니다.

 

Stringbuffer나 StringBuilder보다 나은 장점은  이뮤터블한 속성때문에 thread-safe합니다.  변경되지 않기때문에 여러개의 쓰레드가 데이터를 공유해도 안정성이 유지됩니다. 멀티쓰레드 환경, 문자열 연산이 없는 경우에는 String 클래스 사용이 더 적절합니다.

 

 

2. StringBuffer, StringBuilder

Stringbuffer, StringBuilder는 뮤터블합니다.  문자열을 연산할 때 String과는 다르게  메모리에 적제된 값을 변경시켜주기 때문에  문자열 연산이 자주 있을 경우 사용하면 String에 비해 성능이 좋습니다.

 

 

3.StringBuffer와 Stringbuilder 차이점

StringBuffer는 멀티쓰레드환경에서 synchronized 가능하므로 동기화가 가능 합니다. 즉, thread-safe합니다.

StringBuilder는 동기화를 지원하지 않기 때문에 멀티 쓰레드 환경에서는 적합하지 않습니다.

 

 

 

 

반응형

'IT > Java' 카테고리의 다른 글

JAVA 제네릭(Generic) 이해하기  (0) 2021.04.06
JVM의 이해  (0) 2021.04.05
Lombok 어노테이션 설명  (0) 2018.12.06
Word Cloud를 위한 한국어 처리기 open-korean-text (with. Maven)  (0) 2018.10.23
Servlet 이란  (0) 2018.04.11

댓글