StringBuilder는 언제 쓰나요?

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

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

ᕕ( ᐛ )ᕗ
로그인이 필요합니다

작성한 답변에 다른 개발자들이 댓글을 작성하거나 댓글에 좋아요/싫어요를 할 수 있기 때문에 계정을 필요로 합니다.