String, StringBuffer, StringBuilder

stoph·2022년 12월 18일
0

String

문자열을 나타내는 클래스 (immutable)

  • "abc"와 같은 문자열 리터럴은 이 클래스의 인스턴스로 구현된다.
  • 문자열은 상수이므로 문자열을 만든 후에는 값을 변경할 수 없다.
  • "abc" + "def" 연산을 하면 기존 문자열에 추가되는 것이 아니라
    "abcdef" 라는 새로운 문자열을 만든다.
  • 문자열 연산이 잦은 경우에 성능이 좋지 않다.

StringBuffer

문자열을 나타내는 클래스 (mutable)

  • 문자열을 수정하는 등, 문자열을 다루는데 필요한 여러 메서드를 제공한다.
  • 멀티스레드 환경에서의 동기화를 지원한다.
  • 문자열 연산이 잦고, 스레드에 대한 안전성을 보장해야할 경우 사용한다.
  • eqauls() 가 오버라이딩 되어 있지 않기 때문에 내용 비교를 해야하는 경우 String으로 캐스팅해서 비교해야 한다.

StringBuilder

문자열을 나타내는 클래스 (mutable)

  • 문자열을 수정하는 등, 문자열을 다루는데 필요한 여러 메서드를 제공한다.
  • 멀티스레드 환경에서의 동기화를 지원하지 않기 때문에 일반적으로 StringBuffer보다 속도가 빠르다.
  • 문자열 연산이 잦고, 싱글스레드일 경우 사용한다.
  • eqauls() 가 오버라이딩 되어 있지 않기 때문에 내용 비교를 해야하는 경우 String으로 캐스팅해서 비교해야 한다.

0개의 댓글