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)

}

실행 결과