프로그래밍/오늘 공부
String, StringBuffer, StringBuilder의 차이
9/3
2019. 5. 16. 15:39
String, StringBuffer, StringBuilder의 차이
작년까지는 항상 String
을 이용하다가 서버개발을 공부하기 시작하며 StringBuffer
를 많이 사용하기 시작했다. 처음에 성능 떄문인 것으로 알고 있었는데 그렇다면 StringBuffer
와 StringBuilder
의 차이는 또 무엇일 지 알아보자.
String
String
클래스는 Immutable객체이다. 따라서, +
연산이나 concat에서 새로운 인스턴스를 생성하기 때문에 성능 문제가 있었다. 하지만 JDK 1.5 이상부터는 컴파일시 내부적으로 StringBuilder
로 변환된다.
StringBuilder
위의 String 클래스가 +연산이나 concat연산에 취약하기 때문에, 이러한 단점을 해결하기 좋은 클래스로, append
함수를 사용하여 String을 더하고, toString
메소드로 String으로 변환한다.
StringBuffer
StringBuffer와 같은 역할을 하지만, StringBuffer 는 thread-safe하다는 장점이 있다. 이 때문에 다중스레드 환경에서는 StringBuffer를 사용하는 것이 좋다.