【发布时间】:2020-12-29 07:58:03
【问题描述】:
我遇到了一个简单的数组问题,需要其他程序员的指导。
import java.util.*;
public class ArrayExample {
public static void main(String[] args) {
double[] array2, array3;
array2 = getArray();
array3 = getArray();
array2[0] = 99;
System.out.println(Arrays.toString(array2));
System.out.println(Arrays.toString(array3));
}
public static double[] getArray() {
double[] array1 = {1,2,3};
return array1;
}
}
Here is the output:
[99.0, 2.0, 3.0]
[1.0, 2.0, 3.0]
据我了解,java 对象是通过引用传递的。但是,当我更改 array2 的第一个值时,为什么 array3 的值保持不变? 既然 array2 和 array3 都引用同一个数组,在本例中是 array1,array3 不应该也改变它的第一个值吗?
【问题讨论】:
-
因为
getArray方法每次调用都会创建一个新的数组实例。