피드로 돌아가기
String in Java - Complete guide for Beginners
Dev.toDev.to
Backend

Java String Pool과 Immutability를 통한 메모리 최적화 설계

String in Java - Complete guide for Beginners

Jayashree2026년 5월 20일5beginner

Context

텍스트 데이터 처리 시 발생하는 빈번한 객체 생성으로 인한 Heap 메모리 낭비 발생. 특히 동일한 문자열의 반복 생성으로 인한 가비지 컬렉션 부하 및 메모리 효율 저하가 주요 한계점임.

Technical Solution

  • String Constant Pool 도입을 통한 동일 리터럴의 참조 공유 및 메모리 사용량 최소화
  • Immutability 설계를 통한 문자열 변경 불가능 구조 구현으로 데이터 안정성 및 캐싱 효율 확보
  • Heap 영역에 개별 객체를 생성하는 new 키워드와 Pool을 활용하는 Literal 방식의 구분 운용
  • 빈번한 문자열 수정 시 발생하는 객체 생성 오버헤드 해결을 위해 Mutable한 StringBuilder 활용
  • 멀티스레드 환경의 동기화 필요성에 따른 StringBuffer의 Synchronized 구조 채택
  • 값 비교 시 참조 주소를 확인하는 == 연산자와 실제 데이터 내용을 검증하는 equals() 메서드의 엄격한 구분 적용

1. 메모리 효율을 위해 `new String()` 대신 String Literal 사용 여부 검토

2. 루프 내 문자열 결합 시 `StringBuilder`를 사용하여 불필요한 객체 생성 방지

3. 문자열 값 비교 시 반드시 `.equals()` 또는 `.equalsIgnoreCase()` 사용 확인

4. Thread-safe가 필요 없는 단일 스레드 환경에서는 `StringBuffer`보다 `StringBuilder` 우선 채택

원문 읽기