본문 바로가기
백엔드/Java

StringBuffer 와 StringBuilder 의 차이

by david100gom 2024. 3. 20.

StringBuilder와 StringBuffer는 메소드명까지 같다.그렇다면 두개의 차이점은 무엇일까?

StringBuffer는 스레드에 안전하게 설계되어 있다.  즉 여러 스레드가 하나의 StringBuffer의 객체를 작업할 수 있다. 그리고 StringBuilder는 스레드에 안전하지 않으므로 단일 스레드로 작업해야한다.

  

정리하자면

1. String 클래스의 +연산은 짧은 문자열을 더할 때에만 사용한다.

2. StringBuffer 클래스는 스레드 작업을 하거나, static 문자열을 변경하거나,  singleton 클래스에 선언된 문자열에서 작업할 때 사용한다.

3. StringBuilder 클래스는 단일 스레드로 작업할 때나, 메소드의 지역변수를 상대로 작업한다.

4. JDK 5.0 이상부터는 String의 +연산을 컴파일러가 자동으로 StringBuilder 연산으로 바꿔주지만,  반복문 안에서의 +연산은 여전히 일반 +연산으로 수행하므로 가급적 StringBuffer나 StringBuilder를  사용한다.

'백엔드 > Java' 카테고리의 다른 글

SHA-256  (0) 2024.03.20
알고리즘  (0) 2024.03.20
같은 단어 제거 정규식  (0) 2024.03.20
자바 정수범위  (0) 2024.03.20
ICMP ECHO  (0) 2024.03.20
자바 변수  (0) 2024.03.20
자바 자료구조  (0) 2024.03.20
다른 바이트 순서를 가진 시스템과의 통신  (0) 2024.03.20

댓글