【问题标题】:Arrays - Call by reference [duplicate]数组 - 通过引用调用 [重复]
【发布时间】:2021-01-13 11:26:38
【问题描述】:

在将数组传递给 java 中的函数然后将其分配给新数组时,我得到的是相同的旧数组。

public static void main(String[] args) {
        int[] arr1 = { 1, 2, 3, };
        changes(arr1);
        for (int val : arr1) {
            System.out.println(val);
        }
    }

private static void changes(int[] arr1) {
    int[] arr2 = { 7, 8, 9 };
    arr1 = arr2;
}

为什么在传递数组处理传递对该数组的引用时会这样?

【问题讨论】:

标签: java arrays


【解决方案1】:

因为您正在本地修改对arr1 的引用(您无法修改调用者的引用)。改变

arr1 = arr2;

System.arraycopy(arr2, 0, arr1, 0, arr2.length);

【讨论】:

    猜你喜欢
    • 2012-10-07
    • 2014-07-13
    • 2012-02-29
    • 2012-12-08
    • 2012-12-11
    • 1970-01-01
    • 2020-03-19
    • 2016-09-29
    • 2017-03-21
    相关资源
    最近更新 更多