Home > Java > javaTutorial > Is Java's Array Passing by Value or by Reference?

Is Java's Array Passing by Value or by Reference?

Patricia Arquette
Release: 2024-12-17 05:44:25
Original
956 people have browsed it

Is Java's Array Passing by Value or by Reference?

Understanding Value and Reference Passing in Java: A Case Study of Arrays

In Java, the concept of passing by value or by reference is a crucial topic. Different data types behave differently during this process. While primitives are passed by value, arrays, which are non-primitive but not objects, present a unique situation.

Are Arrays Passed by Value or by Reference?

In essence, everything in Java is passed by value. Arrays, being objects, follow this concept, and the reference to the array is passed by value. Similar to passing object references, the array reference is a copy.

Implications of Value Passing for Arrays

This value passing has specific implications:

  • Changes made to array content via the passed reference will modify the original array.
  • Modifying the reference itself (assigning it to a new array) does not affect the original reference in the originating method.

Example Demonstration

Consider the following Java code:

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..
}
Copy after login

This code demonstrates the value passing behavior of arrays. Changing the array content using changeContent modifies the original array. However, assigning a new array in changeRef does not update the original reference. As a result, the arr[0] value remains 10 even after the reference change.

The above is the detailed content of Is Java's Array Passing by Value or by Reference?. For more information, please follow other related articles on the PHP Chinese website!

source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Latest Articles by Author
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template