我被困在一个简单的数组问题,需要一些指导,从我的同事程序员。
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不也应该更改它的第一个值吗?
1条答案
按热度按时间xam8gpfp1#
array2
以及array3
不要引用同一个数组,因为通过调用getArray()
,以及每次呼叫getArray()
返回一个新的数组示例。为了使它们引用相同的数组,您必须将代码更改为:
或者改变
getArray()
要始终返回相同的数组: