05/04 면접 준비(Java), 문자열 리터럴

전성수·2025년 5월 4일

문자열 리터럴

String X = "123";
X = "0"+X; 의 연산

  • 문자열 리터럴 저장:
    • "123"과 "0"은 모두 자바의 String Pool (문자열 상수 풀)에 저장.
    • 이 풀은 힙 메모리 내의 특별한 공간으로, 동일한 문자열 리터럴이 여러 번 등장해도 한 번만 저장되고 여러 참조가 그 객체를 가리킴
  • 문자열 연결(Concatenation):
    • 자바의 String은 immutable (불변)이기 때문에 기존 객체를 수정하지 않고 항상 새로운 객체를 생성
  • 참조 변경:
    • X 변수는 이제 "0123"이라는 새로운 String 객체를 가리킴.
    • 이전에 X가 참조하던 "123" 객체는 더 이상 X와 연결되어 있지 않음.
  • String Pool과 새 객체:
    • 만약 "0123"이라는 리터럴이 코드 어딘가에 이미 존재했다면, X는 그 String Pool의 객체를 참조
    • 그렇지 않다면, "0123"이 새로 생성되어 힙에 저장되고, 필요하다면 String Pool에도 추가.
profile
ㅡ/ㅡ

0개의 댓글