Kotlin
[Kotlin] String vs StringBuffer vs StringBuilder
혀가 길지 않은 개발자
2020. 10. 26. 00:14
String vs StringBuffer vs StringBuilder
String
- 문자열 삽입, 삭제, 수정이 많지 않을 때 사용하기 적합
- 불변(immutable) 객체
- 문자열이 수정될 때마다 새로운 객체가 Heap에 생성됨
- 불변성을 가지므로 멀티 스레드 환경에서 안전 (Thread-Safe)
StringBuffer
- 가변(mutable) 객체
- 문자열 삽입, 삭제, 수정이 빈번하게 발생 시 사용하기 적합
- synchronized 키워드를 사용하여 멀티 스레드 환경에서 안전 (Thread-Safe)
StringBuilder
- 가변(mutable) 객체
- 문자열 삽입, 삭제, 수정이 빈번하게 발생 시 사용하기 적합
- 동기화를 지원하지 않음
- 단일 스레드의 성능이 StringBuffer 보다 뛰어남
fun main() {
var str = "James"
str = "James Kim"
var strBuffer = StringBuffer("James")
strBuffer.append(" Kim")
var strBuilder = StringBuilder("James")
strBuilder.append(" Kim")
println(str)
println(strBuffer)
println(strBuilder)
}