Java에서 배열 전달: 값과 참조
기본 유형과 달리 Java의 배열은 기본 형식도 객체도 아닙니다. 이는 질문을 제기합니다. Java에서는 값으로 전달됩니까, 아니면 참조로 전달됩니까?
값 및 참조 전달 이해
Java에서는 모든 것이 값으로 전달됩니다. 이는 실제 값의 복사본이 수신 변수에 저장된다는 의미입니다. 정수나 문자열과 같은 기본 요소의 경우 이는 단순히 값을 복제합니다. 그러나 객체와 배열의 경우 좀 더 복잡합니다.
배열 전달: 참조 전용
배열은 실제 객체는 아니지만 여전히 참조로 처리됩니다. . 따라서 배열이 메서드에 전달되면 실제로 배열 자체가 아닌 배열에 대한 참조만 전달됩니다. 이는 배열 콘텐츠에 대한 모든 변경 사항이 원본 배열에 반영된다는 것을 의미합니다.
배열 콘텐츠 및 참조 변경
메서드 내에서 배열 수정 전달되는 참조로 인해 원래 배열에 영향을 미칩니다. 그러나 새 배열에 할당하는 등 참조 자체를 변경해도 원래 메서드의 참조는 변경되지 않습니다. 참조 자체가 값으로 전달되는 값이기 때문입니다.
예
다음 예에서는 이 동작을 보여줍니다.
public static void changeContent(int[] arr) { arr[0] = 10; // Modifies the array's content } public static void changeRef(int[] arr) { arr = new int[2]; // Changes the reference arr[0] = 15; } public static void main(String[] args) { int[] arr = new int[2]; arr[0] = 4; arr[1] = 5; changeContent(arr); System.out.println(arr[0]); // Prints 10 (content changed) changeRef(arr); System.out.println(arr[0]); // Prints 10 (reference not changed) }
이 경우,changeContent() 메서드는 배열의 내용을 수정하여 원래 배열에 영향을 줍니다. 그러나 ChangeRef() 메서드는 참조 자체를 변경하므로 원본 배열에는 영향을 주지 않습니다.
위 내용은 Java에서 배열은 값으로 전달됩니까, 아니면 참조로 전달됩니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!