Java의 값 및 참조 전달 이해: 배열 사례 연구
Java에서 값 또는 참조 전달의 개념은 다음과 같습니다. 중요한 주제. 이 프로세스 동안 다양한 데이터 유형이 다르게 동작합니다. 프리미티브는 값으로 전달되는 반면, 비프리미티브이지만 객체가 아닌 배열은 독특한 상황을 나타냅니다.
배열은 값으로 전달됩니까, 아니면 참조로 전달됩니까?
본질적으로 Java의 모든 것은 값으로 전달됩니다. 객체인 배열은 이 개념을 따르며 배열에 대한 참조는 값으로 전달됩니다. 객체 참조 전달과 유사하게 배열 참조는 복사본입니다.
배열에 대한 값 전달의 의미
이 값 전달에는 다음과 같은 특정한 의미가 있습니다.
예제 데모
다음 Java 코드를 고려하세요. :
public static void changeContent(int[] arr) { // If we change the contnet of arr. arr[0] = 10; // Will change the content of array in main() } public static void changeRef(int[] arr) { // If we change the reference arr = new int[2]; // Will not change the array in main() 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]); // Will print 10.. changeRef(arr); System.out.println(arr[0]); // Will still print 10.. // Change the reference doesn't reflect change here.. }
이 코드는 배열의 값 전달 동작을 보여줍니다. ChangeContent를 사용하여 배열 내용을 변경하면 원래 배열이 수정됩니다. 그러나 ChangeRef에 새 배열을 할당해도 원래 참조는 업데이트되지 않습니다. 결과적으로, 참조 변경 후에도 arr[0] 값은 10으로 유지됩니다.
위 내용은 Java의 배열은 값으로 전달됩니까, 아니면 참조로 전달됩니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!