6. String, StringBuffer, StringBuilder 의 차이점
StringBuffer 와 StringBuilder 둘다 가변객체입니다.
String은 불변 객체.
차이점은 아래와 같습니다.
● A thread-safe vs no guarantee of synchronization
StringBuffer는 멀티스레드 환경에서 StringBuffer 인스턴스에 접근해서 조작해도 그 값에 대한 접근이 가능하다는 얘기입니다. 반면, StringBuilder 는 그렇지 않다는 거죠.
Instances of StringBuilder are not safe for use by multiple threads. If such synchronization is required then it is recommended that StringBuffer be used.
위 문구를 보면 멀티스레드 환경에서는 StringBuilder 인스턴스는 안전하지 않으니 동기화가 필요할 시
StringBuffer 를 사용하라고 권장하고 있군요.
멀티스레드 환경이 뭔지 잘 모르신다구요? 구글링을 생활화 하셔야 됩니다.
구글링을 통해 멀티스레드 환경에 관련된 여러 자료를 숙지하신 후 다시 보시면 이해가 쉽게 되실 겁니다.
String은 짧은 문자열을 더할 경우 사용합니다.
StringBuffer는 스레드에 안전한 프로그램이 필요할 때나, 개발 중인 시스템의 부분이 스레드에 안전한지 모를 경우 사용하면 좋습니다.
StringBuilder는 스레드에 안전한지 여부가 전혀 관계 없는 프로그램을 개발할 때 사용하면 좋습니다.
단순히 성능만 놓고 본다면 연산이 많은 경우, StringBuilder > StringBuffer >>> String 입니다.
출처: http://12bme.tistory.com/42 [길은 가면, 뒤에 있다]
https://jaybdev.net/articles/2017-09/Java-4
'Get IT Note > Java' 카테고리의 다른 글
8. int Array -> Integer List 변환하기 (0) | 2018.07.16 |
---|---|
7. ASCII , UNICODE, UTF-8 (0) | 2018.07.05 |
5. 불변객체와 가변객체 (0) | 2018.07.04 |
4. ArrayList와 Array간 변환 (0) | 2018.07.03 |
3. 예외처리 (0) | 2018.07.03 |