StringBuilder는 언제 쓰나요?


String하고 StringBuilder의 차이를 굳이 모르겠는데요. 둘의 차이좀 설명해주세요.

  • 2016년 01월 22일에 작성됨

조회수 295


1 답변


좋아요
0
싫어요
채택취소하기

1. String

1-1. 특징

  • String 객체는 immutable 이다. 즉, 한번 생성되면 String 객체가 변할 수 없다.
  • 문자열, 숫자, char 등을 concat 할때는 StringBuffer, StringBuilder 를 사용할 수 있지만 단순한 경우에는 + 를 활용해 직접 합쳐도 된다.

2. StringBuffer 와 StringBuilder 차이점

2-1. 특징

  • 기본적으로 두 클래스가 제공하는 메소드는 동일하지만 StringBuffer는 멀티 쓰레드 상태에서 동기화를 지원한다. (각 메소드 별로 synchronized 키워드가 존재)
  • String 을 + 를 활용해 합치는 경우 매번 인스턴스를 생성하기 때문에 성능상에 이슈가 많다. 이런 성능 이슈를 개선하기위해 JDK 1.5 버전 이후에는 컴파일 단계에서 StringBuilder로 컴파일 되도록 변경되기 때문에 + 를 활용해도 성능상에 큰 이슈는 없다.

1 ** String 클래스의 원리** String a 값에 계속 값을 더해가는 경우 새로운 String 클래스가 만들어 진다. 2 StringBuffer 나 StringBuilder 의 원리 새로운 객체를 생성시키지 않고, 기존에 있는 객체의 크기를 증가시키면서 값을 더한다. http://egloos.zum.com/top2blue/v/5148222

  • 2016년 01월 22일에 작성됨

로그인이 필요한 기능입니다.

Hashcode는 개발자들을 위한 무료 QnA사이트 입니다. 작성한 답변에 다른 개발자들이 댓글을 작성하거나 좋아요/싫어요를 할 수 있기 때문에 계정을 필요로 합니다.
► 로그인
► 계정만들기
Close