쉽게 이해하기
메서드에 배열을 넘기면 같은 보관함을 가리키는 손잡이가 복사됩니다. a[0]을 바꾸면 원래 배열도 바뀝니다. 하지만 매개변수에 new 배열을 다시 대입하면 그 지역 손잡이만 다른 보관함으로 옮깁니다.
눈으로 따라가기
원소 변경 → 공유 / 매개변수 재대입 → 지역 손잡이만 변경
class Helper { static void change(int[] a){a[0]+=3;a=new int[]{99};a[0]++;} }
public class Main {
public static void main(String[] args) {
int[] a = {1, 7};
Helper.change(a);
System.out.print(a[0] + " " + a[1]);
}
}시험 함정
참조를 값으로 전달하는 것과 호출자의 참조변수를 바꾸는 것은 다릅니다.
함께 보는 관련 주제
비슷한 개념의 핵심과 함정을 이 페이지에서 비교합니다.
즉시 문제 · 4개
정답을 제출하면 해설과 관련 개념을 확인합니다. 틀린 문제는 자동으로 오답노트에 저장됩니다.
즉시 3문제관련 문제 전체검증 근거
기술 문서/실행 검증 · 마지막 검증 2026-09-27 · 핵심 코드 추적 유형 · 공식 출제 횟수 집계 없음