우선 Java에서 passing by value
이라는 것을 이해합니다.Java에서 값 전달 방법
또한 개체 나 배열을 전달할 때 메서드에 전달 된 배열의 주소임을 이해합니다. 따라서 메서드 내에서 배열 변수를 수정하면 외부 배열 변수에 영향을줍니다. change
내부 a
외부 실제로 배열이기 때문에 예를 들면
,
private void change(int[] a) {
a[0] = 1234;
}
public static void main(String[] args) {
int[] a = new int[2]{1,2};
change(a);
System.out.println(a[0]);
}
출력은 1234
것이다. 출력이 1234
이 1
하지 왜
private void change(int[] a) {
a = new int[3]{1234, 4, 5};
}
public static void main(String[] args) {
int[] a = new int[2]{1,2};
change(a);
System.out.println(a[0]);
}
: 이해가 안 무엇
다음 코드인가?
내부는 a
외부는 a
과 동일합니다. 맞습니까? 또한 위의 예제처럼 내부가 a
인데 왜 두 가지 출력이 다른가요?
체크 아웃 http://www.javaworld.com/article/2077424/learn-java/does-java-pass-by-reference-or-pass-by-value.html – jefflunt
'나는 지나가는 것을 이해합니다. Java에서 가치로. '당신은 참조가 무엇인지 이해해야합니다. –