프로그래밍 언어/Java

Java 자바의 String, StringBuffer, StringBuilder

영드로이드개발자 2022. 8. 4. 14:52
반응형

String, StringBuffer, StringBuilder

자바는 문자열을 다루는 클래스로써 String, StringBuffer, StringBuilder 이렇게 3가지 클래스가 있습니다.

이 3가지 클래스들의 각각의 차이점과 사용이유에 대해서 알아보겠습니다.

 

1. String, StringBuffer, StringBuilder의 차이점

가장 큰 이유에는 String 은 불변(immutable) 하고 StringBuffer와 StringBuilder는 기변(mutable)하다는 점입니다.

즉 String은 객체가 한번 할당되면 할당된 공간이 변하지 않지만 StringBuffer와 StringBuilder의 경우에는 객체의 공간이 부족해지는 경우 버퍼의 크기를 늘릴수 있습니다.

 

그렇다면 StringBuffer와 StringBuilder의 차이점은 뭘까요?

 

둘 다 크기를 유연하게 변하는 가변적인 특성을 가지고 있고 제공하는 메서드도같으며 사용하는 방법도 동일합니다.

하지만 두 클래스는 동기화 지원 유무가 다릅니다.

StringBuffer는 멀티스레드 상태에서 동기화를 지원하고 StringBuilder는 단일 스레드 환경에서만 사용하도록 설계되어 있습니다. 비록 StringBuilder가 StringBuffer보다 속도가 빠르지만 언제 어디서 멀티스

반응형