← Java 암기북

Java · ⚠ 함정

String 불변성과 재대입

String 불변성과 재대입

시험 한 줄 · 30초 암기String 연산은 원래 객체를 고치지 않으며 결과를 다시 저장해야 합니다.

쉽게 이해하기

문자열은 완성된 메모지처럼 글자를 직접 갈아 끼울 수 없습니다. replace나 concat은 결과 문자열을 돌려줍니다. s.concat("!")만 쓰면 새 메모지를 받지 않고 버린 것이므로 s는 그대로입니다.

눈으로 따라가기

s = s.replace("a", "b"); → 결과 저장 필요

public class Main {
  public static void main(String[] args) {
    String s = "a-b-a";
    s.replace("a","X");
    System.out.print(s + " ");
    s = s.replace("a","X");
    System.out.print(s);
  }
}

시험 함정

s += "!"는 같은 객체를 고친 것이 아니라 결과 참조를 s에 다시 넣은 것입니다.

비슷한 개념의 핵심과 함정을 이 페이지에서 비교합니다.

즉시 문제 · 4개

정답을 제출하면 해설과 관련 개념을 확인합니다. 틀린 문제는 자동으로 오답노트에 저장됩니다.

즉시 3문제관련 문제 전체

검증 근거

기술 문서/실행 검증 · 마지막 검증 2026-09-27 · 핵심 코드 추적 유형 · 공식 출제 횟수 집계 없음