본문으로 바로가기

[JAVA] String, StringBuffer, StringBuilder

category 프로그래밍/JAVA 2021. 5. 13. 19:55
728x90
반응형

StringBuilder는 자바의 클래스입니다.

이름처럼 문자열을 사용자 입맛에 맞게 작업하도록 도와주는 클래스입니다.

자바에서는 문자열 관련된 클래스들이 많은데 왜 이것이 필요한지에 대해 알아보겠습니다.

String 클래스의 경우, 값이 초기화된 후로는 값을 변경할 수 없습니다.

.concat()이나 + 연산자를 이용하여 값을 변경하게 되면 기존의 String에 값을 버린 후, 새로운 값을 할당하게 됩니다.

값 변경이 많이 이루어지게 되면 값을 버리고, 새로운 값을 할당하고 이런 것이 반복되고, 성능에 영향을 미칩니다.

그렇기 때문에 StringBuffer나 StringBuilder 클래스를 사용합니다.

StringBuffer나 StringBuilder 클래스를 사용하면 .append()나 .delete()를 사용하여 값을 쉽게 변경할 수 있습니다

이 경우, 기존 값을 그대로 유지한 채로 값을 변경합니다.

이제 StringBuffer와 StringBuilder 두 개 클래스의 차이에 대해 알아보겠습니다.

결론적으로는 멀티 쓰레드 환경에서는 StringBuilder를 사용하고, 싱글 쓰레드에서는 StringBuilder를 사용하는게 좋습니다.

StringBuffer의 경우 여러 곳에서 동시에 같은 문자열에 접근할 경우 중복 점유를 막을 수 있도록 되어 있습니다.

(synchronization 적용, thread-safe)

즉, 동기화에 대한 기능에 들어가 있습니다.

그렇기 때문에 StringBuilder에 비해 좀 더 무겁습니다.

이러한 차이가 있기 때문에 각 환경에 맞게 사용하면됩니다.

자세한 기능에 대해서 언급하지 않았고, String 관련 클래스들의 차이점에 대해 알아보았습니다.

이상입니다.

728x90
반응형

'프로그래밍 > JAVA' 카테고리의 다른 글

[JAVA] lombok 에러  (0) 2022.03.15
[JAVA] Eclipse, STS 한글 깨짐 현상  (0) 2022.03.07
[JAVA] Mybatis란?  (0) 2021.04.18
[JAVA] 디자인 패턴(1)  (0) 2021.04.14
[JAVA] https 인증서 jks파일  (0) 2021.03.30