StringBuilder와 StringBuffer는 메소드명까지 같다.그렇다면 두개의 차이점은 무엇일까?
StringBuffer는 스레드에 안전하게 설계되어 있다. 즉 여러 스레드가 하나의 StringBuffer의 객체를 작업할 수 있다. 그리고 StringBuilder는 스레드에 안전하지 않으므로 단일 스레드로 작업해야한다.
정리하자면
1. String 클래스의 +연산은 짧은 문자열을 더할 때에만 사용한다.
2. StringBuffer 클래스는 스레드 작업을 하거나, static 문자열을 변경하거나, singleton 클래스에 선언된 문자열에서 작업할 때 사용한다.
3. StringBuilder 클래스는 단일 스레드로 작업할 때나, 메소드의 지역변수를 상대로 작업한다.
4. JDK 5.0 이상부터는 String의 +연산을 컴파일러가 자동으로 StringBuilder 연산으로 바꿔주지만, 반복문 안에서의 +연산은 여전히 일반 +연산으로 수행하므로 가급적 StringBuffer나 StringBuilder를 사용한다.
'백엔드 > Java' 카테고리의 다른 글
SHA-256 (0) | 2024.03.20 |
---|---|
알고리즘 (0) | 2024.03.20 |
같은 단어 제거 정규식 (0) | 2024.03.20 |
자바 정수범위 (0) | 2024.03.20 |
ICMP ECHO (0) | 2024.03.20 |
자바 변수 (0) | 2024.03.20 |
자바 자료구조 (0) | 2024.03.20 |
다른 바이트 순서를 가진 시스템과의 통신 (0) | 2024.03.20 |
댓글