코린이의 소소한 공부노트

StringBuilder 클래스 본문

Java

StringBuilder 클래스

무지맘 2022. 8. 24. 13:25

StringBuilder 클래스는 StringBuffer 클래스와 메서드 이름도 같고, 사용 방법도 같다.

StringBuffer sb = new StringBuffer();
sb.append("abc");

// 클래스 이름만 바꿔주면 OK
StringBuilder sb = new StringBuilder();
sb.append("abc");

2022.08.18 - [Java] - StringBuffer 클래스

 

[두 클래스의 차이점]

1. StringBuffer는 동기화되어있다.

  - 이 클래스는 멀티 스레드에 안전하다.(thread-safe)

2. StringBuilder는 동기화되어있지 않다.

  - 이 클래스는 멀티 스레드에 안전하지 않다.

 

[스레드에 대한 간단한 설명]

1. 싱글 스레드

  - 한 번에 1개의 작업만 함

  - 데이터를 공유할 스레드가 없음

  - 친구와의 톡방에서 채팅을 하다가 친구가 파일을 보내 줬을 때 그 파일을 다운로드하는 동안 채팅 불가

2. 멀티 스레드

  - 한 번에 여러 개의 작업을 함

  - 동시에 작업이 이루어지는 스레드와 데이터를 공유함 -> 동기화를 하면 그 데이터가 보호됨

  - 친구와의 톡방에서 채팅을 하다가 친구가 파일을 보내 줬을 때 그 파일을 다운로드하는 동안 채팅 가능

 

싱글 스레드를 이용하는 데 StringBuffer를 사용하면 동기화가 불필요한데 동기화를 하게 된다. 이로 인해 성능이 저하될 것이 염려되는 경우 StringBuilder를 사용하면 된다.

대부분은 싱글 스레드도 StringBuffer를 이용한다.

 

'Java' 카테고리의 다른 글

문자열의 여러 가지 변환, 오토박싱, 언박싱  (0) 2022.10.11
래퍼 클래스, 넘버 클래스  (0) 2022.10.11
Math 클래스  (0) 2022.08.24
StringBuffer 클래스  (0) 2022.08.18
문자열의 결합과 변환  (0) 2022.08.18