코딩테스트

코딩테스트

String vs StringBuilder

문자열을 추가하는 연산에서 StringBuilder가 String보다 성능이 좋다. 왜 그런지 알아보자. String은 immutable하기 때문이다. 불변하기 때문이다. String a = "a"; a = "a" + "b"; 이렇게 a 를 + 연산을 이용하여 문자열을 합치면 a 인스턴스를 "a" -> "ab"로 변경하는 것이 아니라 "ab"라는 새로운 문자열을 string pool에 새로 생성한 뒤 참조하게 해준다. 그 뒤 이전 "a" 문자열은 가비키 컬렉션 대상이 된다. 따라서 String 클래스를 사용하면 더욱 많은 시간과 메모리가 사용된다. 더보기 StringBuilder, StringBuffer가 문자열 연산에서 더 좋은 이유? String 클래스는 연산이 수행될 때마다 두 문자열을 모두 읽어 ..

규동
'코딩테스트' 카테고리의 글 목록