문자열 버퍼와 StringBuilder는 모두 문자열의 역순, 문자열 연결 등과 같은 문자열 개체에 대한 작업을 수행하는 데 사용할 수 있는 변경 가능한 클래스입니다. 문자열의 새 개체를 만들지 않고 문자열을 수정할 수 있습니다. 문자열 버퍼는 스레드로부터 안전하지만 문자열 빌더는 스레드로부터 안전하지 않습니다. 따라서 문자열 버퍼보다 빠릅니다. 또한 string concat + 연산자는 내부적으로 StringBuffer 또는 StringBuilder 클래스를 사용합니다. 다음은 차이점입니다.
Sr. 아니요. | 키 | 문자열 버퍼 | 문자열 작성기 |
---|---|---|---|
1 | 기본 | StringBuffer는 Java의 초기 릴리스와 함께 도입되었습니다. | Java 5에서 도입되었습니다. |
2 | 동기화됨 | 동기화됨 | 동기화되지 않음 |
3 | 성능 | 쓰레드로부터 안전합니다. 따라서 여러 스레드가 동시에 액세스할 수 없으므로 느립니다. | 쓰레드로부터 안전하지 않으므로 문자열 버퍼보다 빠릅니다. |
4 | 변경 가능 | 변경 가능합니다. 객체를 생성하지 않고 문자열을 수정할 수 있습니다. | 그것도 변경 가능하다 |
5 | 저장 | 힙 | 힙 |
StringBuilder의 예
public class StringBuilderExample{ public static void main(String[] args){ StringBuilder builder=new StringBuilder("Hi"); builder.append("Java 8"); System.out.println("StringBuilderExample" +builder); } }
StringBuffer의 예
public class StringBufferExample{ public static void main(String[] args){ StringBuffer buffer=new StringBuffer("Hi"); buffer.append("Java 8"); System.out.println("StringBufferExample" +buffer); } }