[TIL]문자열 기초(2025-02-04)

김대진·2025년 2월 4일

[TIL]

목록 보기
3/8

📌 String vs StringBuilder vs repeat() 비교

1️⃣ String

  • 불변(Immutable): 한 번 생성되면 변경할 수 없음.
  • 새 객체 생성: + 연산 시 새로운 String 객체가 생성되어 메모리 낭비 가능.
  • 멀티스레드 안전: StringThread-Safe.

2️⃣ StringBuilder

  • 가변(Mutable): 기존 객체를 직접 수정하여 메모리 절약 & 성능 향상.
  • 빠른 문자열 조작: append(), insert(), delete() 등 제공.
  • 단일 스레드에서만 안전 (StringBuffer는 멀티스레드 지원).

3️⃣ repeat() (Java 11+)

  • 문자열 반복: repeat(k)를 사용하여 k번 반복한 문자열을 반환.
  • 새 객체 생성: 반복 시 새로운 String 객체를 생성하여 메모리 사용 증가 가능.

📝 비교표

특징String (불변)StringBuilder (가변)repeat() (Java 11+)
가변성❌ 불변✅ 가변❌ 불변
메모리 사용🔺 높음✅ 낮음🔺 높음
성능🔺 느림✅ 빠름🔺 반복 횟수 많으면 느림
사용 목적변경이 적을 때문자열 조작이 많을 때문자열 반복 시
멀티스레드✅ 안전❌ 안전하지 않음✅ 안전
지원 버전Java 1.0+Java 1.5+Java 11+

🎯 언제 사용해야 할까?

  • 변경이 거의 없는 문자열String 사용.
  • 문자열을 자주 수정해야 하는 경우StringBuilder 사용.
  • 문자열을 반복해야 하는 경우repeat() 사용(Java 11 이상).

0개의 댓글