84669인 학습
152542인 학습
20005인 학습
5487인 학습
7821인 학습
359900인 학습
3350인 학습
180660인 학습
48569인 학습
18603인 학습
40936인 학습
1549인 학습
1183인 학습
32909인 학습
JVM 사양의 한 섹션을 인용하고 자세한 내용은
메서드 선언에 선언된 모든 매개변수에 대해 해당 메소드가 호출될 때마다 새 매개변수 변수가 생성됩니다. 새 변수는 메소드 호출의 해당 인수 값으로 초기화됩니다.
사양에는 메소드가 호출될 때마다 메소드의 매개변수가 초기화된다고 나와 있습니다.
위 test 메서드의 index은 Integer 유형의 변수를 초기화한 다음 전달된 i을 가리킵니다. 다음 index = new Integer(20); 은 index 변수의 포인팅만 변경하고 i의 원래 포인팅은 변경되지 않았습니다.
test
index
Integer
i
index = new Integer(20);
Java의 메소드는 모두 값 전송을 사용합니다. 참조인 경우에도 전달되는 것은 원본 참조의 복사본입니다.
이 메소드는 매개변수 참조의 속성만 변경할 수 있으며 매개변수의 참조 주소는 변경할 수 없습니다.
Integer의 소스 코드를 볼 수 있습니다:
랩핑하는 값은 final에 의해 수정됩니다. 즉, 한 번만 할당할 수 있으며 할당 후에는 값이 변경되지 않습니다.
또한 문자열과 같은 다른 참조 유형을 시도하여 변경 가능한지 확인할 수 있습니다
JVM 사양의 한 섹션을 인용하고 자세한 내용은
을 참조하세요.사양에는 메소드가 호출될 때마다 메소드의 매개변수가 초기화된다고 나와 있습니다.
위
test
메서드의index
은Integer
유형의 변수를 초기화한 다음 전달된i
을 가리킵니다. 다음index = new Integer(20);
은index
변수의 포인팅만 변경하고i
의 원래 포인팅은 변경되지 않았습니다.Java의 메소드는 모두 값 전송을 사용합니다. 참조인 경우에도 전달되는 것은 원본 참조의 복사본입니다.
이 메소드는 매개변수 참조의 속성만 변경할 수 있으며 매개변수의 참조 주소는 변경할 수 없습니다.
Integer의 소스 코드를 볼 수 있습니다:
랩핑하는 값은 final에 의해 수정됩니다. 즉, 한 번만 할당할 수 있으며 할당 후에는 값이 변경되지 않습니다.
또한 문자열과 같은 다른 참조 유형을 시도하여 변경 가능한지 확인할 수 있습니다