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 |
댓글