프로그래밍언어/JAVA

[Java] String, StringBuilder, StringBuffer 차이점

shoney9254 2023. 3. 30. 13:50
반응형

 

Java에서 문자열을 사용할 때, 자주 보이는 클래스 String, StringBuffer, StringBuilder 차이점을 알아봅시다.

 

1. String

  • String은 불변(immutable)한 문자열을 나타내는 클래스입니다.
  • 문자열을 변경할 경우, 기존 문자열 객체를 변경하는 것이 아니라 새로운 문자열 객체를 생성합니다.
  • 멀티 스레드 환경에서 안전합니다.
String str = "hello";
str = str + " world"; // "hello world" 문자열 생성
 
 

2. StringBuilder

  • StringBuilder는 가변(mutable)한 문자열을 나타내는 클래스입니다.
  • 문자열을 변경할 때, 기존 객체를 변경하며, 새로운 객체를 생성하지 않습니다.
  • 멀티 스레드 환경에서 안전하지 않습니다.
StringBuilder sb = new StringBuilder("hello");
sb.append(" world"); // "hello world" 문자열 생성
 
 
 

3. StringBuffer

  • StringBuffer는 StringBuilder와 기능이 거의 동일하지만, 멀티 스레드 환경에서 안전합니다.
  • StringBuilder와 달리 동기화를 지원하므로, 스레드 안전성을 보장합니다.
StringBuffer sb = new StringBuffer("hello");
sb.append(" world"); // "hello world" 문자열 생성

 

 

반응형