자바의 매우 수수께끼 인 기능 (?)을 발견했습니다.Java 메소드 인수 퍼즐
import java.util.ArrayList;
public class Puzzle {
public static void main(String[] args) {
ArrayList<Integer> outer = new ArrayList<Integer>();
outer.add(17);
Puzzle.change(outer);
outer.add(6);
System.out.println(outer);
// excpected output:
// [23]
// [23, 6]
//
// actual output:
// [23]
// [17, 7, 6]
}
public static void change(ArrayList<Integer> inner) {
inner.add(7);
inner = new ArrayList<Integer>();
inner.add(23);
System.out.println(inner);
}
}
는 사람이 이상한 설명 할 수 :
그것은 다른 범위로 객체를 이동하는 방법을 인수 종류를 대체 할 "새로운"키워드를 사용하는 것 같다? 나는 배정으로 같은 종류의 행동을 알아 차렸다.
그건 퍼즐이 아니라 기본 개념입니다. "가치에 의한 호출 대 참조로 호출"에 대한 Google. –