Notice
Recent Posts
Recent Comments
Link
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | |
| 7 | 8 | 9 | 10 | 11 | 12 | 13 |
| 14 | 15 | 16 | 17 | 18 | 19 | 20 |
| 21 | 22 | 23 | 24 | 25 | 26 | 27 |
| 28 | 29 | 30 | 31 |
Tags
- DataStructure
- javascirpt
- 관계형데이터베이스
- 하이퍼레저
- 깃
- Javascript
- 블록몽키
- hyperledger
- al
- nodejs
- hyperledger fabric
- algorithum
- Nodejs 프로젝트
- javascript 게임
- vs code
- 컴퓨터공학개론
- 프로그래밍
- javascript 초급
- 자바스크립트
- 제로초
- mysql
- 생활코딩 nodejs
- Blockmonkey
- 컴퓨터사이언스
- 생활코딩
- SQL
- 블록체인개론
- js
- 파이썬 알고리즘
- 블록체인
Archives
- Today
- Total
Blockmonkey
[Java] String & String Builder & StringBuffer 본문
Web Development/Back-end
[Java] String & String Builder & StringBuffer
Blockmonkey 2025. 9. 11. 11:38
String vs String Builder
String Builder는 문자열 타입의 가변 객체이며, String은 불변 객체라서 보다 성능적 이점을 가진다.
즉, String에서는 매번 값을 바꿀 때마다 새로운 객체를 생성하고 반면, String builder에서는 값을 수정하는 방식으로 작동하여 성능적 이점을 가지므로 지속적으로 변화하는 문자열을 다룰 때에는 String Builder를 사용하는 것이 유리하다.
String Builder vs String Buffer
String Buffer 또한 가변 객체이다. String Builder와의 차이점은 쓰레드 안전한 필드인가이다.
String Builder 객체는 주요 메소드가 모두 synchronized(동기화) 선언되어있기 때문이다.
하지만, 동기화로 인해 데이터 변경 속도가 느리므로 멀티쓰레드 환경에서 동시성 문제가 발생할 때 사용이 적절하다.
| String | String Builder | String Buffer | |
| 가변성 | 불변 (immutable) | 가변 (mutable) | 가변 (mutable) |
| 스레드 안전성 | 안전함 (변경 불가) | 안전하지 않음 | 스레드 안전 (동기화됨) |
| 성능 | 느림 (연결 시마다 새 객체 생성) | 빠름 (비동기 환경에서 추천) | 느림 (동기화 때문에 비용 있음) |
| 주요 사용처 | 문자열 변경이 거의 없는 때 | 문자열 수정 반복 때 | 문자열이 변경되고, 멀티스레드 환경 |
| 문자열 연결 방식 | + 또는 concat() | append() | append() |
'Web Development > Back-end' 카테고리의 다른 글
| [DB] Slow Query (0) | 2025.09.27 |
|---|---|
| [DB] B-Tree vs B+Tree (0) | 2025.09.22 |
| EKS - 환경변수 관리 (1) | 2025.07.21 |
| EKS - Context (0) | 2025.07.21 |
| EKS 사용하기 (3) | 2025.07.21 |