쉽게 이해하기
문자열은 완성된 메모지처럼 글자를 직접 갈아 끼울 수 없습니다. 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 · 핵심 코드 추적 유형 · 공식 출제 횟수 집계 없음