String, StringBuffer, StringBuilder의 속성

임미선·2022년 6월 12일
0

java에서 문자열을 다룰 때 이용하는 대표적인 클래스로 1. String, 2. StringBuffer, 3. StringBuilder가 있습니다. 각 클래스별 특징과 어떤 환경에서 쓰면 좋을지 알아보도록 하겠습니다.

1. String

string은 불변 속성을 가지고 있습니다. 코드 내에서 문자열의 빈번한 수정이 일어날 경우, 수정할 때마다 계속해서 새로운 인스턴스가 생성되므로 메모리 관리에 부담이 따를 수 있습니다. 따라서 문자열 연산이 잦은 경우에는 String 대신 StringBuffer와 StringBuilder를 사용하는 것이 효율적 입니다.

하지만 변하지 않는 문자열을 읽어들이기만 하는 경우에는 String 클래스를 사용하는 것이 효율적 입니다.

2. StringBuffer vs StringBuilder

StringBuffer와 StringBuilder는 가변 속성을 가지고 있습니다. 두 클래스의 가장 큰 차이는 동기화 유무입니다. StringBuilder는 동기화를 지원하지 않지만 StringBuffer는 동기화를 지원하기 때문에 멀티스레드 환경에서 안정적으로 동작합니다.

그래서 어떤 클래스를 사용해야 하나요?

  • String : 변하지 않는 문자열을 자주 사용할 경우
  • StringBuffer : 문자열의 연산이 잦고, 멀티스레드 환경일 경우
  • StringBuilder : 문자열의 연산이 잦고, 단일스레드 환경일 경우
profile
미선이네

0개의 댓글