English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
문자열 버퍼와 StringBuilder는 모두 변경 가능한 클래스로, 문자 객체에 대한 작업을 수행할 수 있습니다. 예를 들어, 문자열을 반대로, 문자열을 압축하는 등의 작업을 수행할 수 있습니다. 새 문자 객체를 생성하지 않고 문자를 수정할 수 있습니다. 문자 버퍼는 스레드 안전하며, 문자 생성기는 스레드 안전하지 않습니다. 따라서, 문자 버퍼보다 빠릅니다. 또한, 문자 concat +연산자는 StringBuffer나 StringBuilder 클래스에서 내부에서 사용됩니다. 다음은 차이점입니다.
순번 | 키 | StringBuffer | 문자열 생성기 |
---|---|---|---|
1 | 기본 | Java의 초기 버전에서 StringBuffer가 도입되었습니다 | 그것은 Java 5에서 도입된 |
2 | 동기화 | 그것은 동기화됩니다 | 비동기 |
3 | 성능 | 그것은 스레드 안전합니다. 따라서 여러 스레드가 동시에 접근할 수 없기 때문에 속도가 느립니다 | 그것은 스레드 안전하지 않으므로 문자열 버퍼보다 빠릅니다 |
4 | 변경 가능 | 그것은 변경 가능합니다. 문자열을 변경할 수 있지만 객체를 생성하지 않습니다 | 그것은 변경 가능합니다 |
5 | 저장 | 스택 | 스택 |
public class StringBuilderExample{ public static void main(String[] args){ StringBuilder builder=new StringBuilder("Hi"); builder.append("Java 8"); System.out.println("StringBuilderExample" +builder); } }
public class StringBufferExample{ public static void main(String[] args){ StringBuffer buffer=new StringBuffer("Hi"); buffer.append("Java 8"); System.out.println("StringBufferExample" +buffer); } }