【发布时间】:2019-01-01 10:34:02
【问题描述】:
我想了解array = array 的实际作用。
为什么编辑 data1 会导致 data2 稍后在此过程中被更改?
String[][] data1 = new String[5][1];
String[][] data2 = new String[1][1];
data1[0][0] = "Test 1";
data2 = data1;
//Prints "Test 1"
System.out.println(data2[0][0]);
data1[0][0] = "NEW";
//Prints "NEW"
System.out.println(data2[0][0]);
【问题讨论】:
-
data2 = data1;。data2和data1都引用同一个数组 (new String[5][1]) -
我已经很久没有做Java了,但我认为这只是因为两者的数据类型相同。如果假设
data2不是二维字符串数组,那么data2 = data1将出错。 -
这在C语言中更容易理解,其中数组实际上是数组第一个元素的地址。
data2 = data1实际上让两个变量指向同一个数组。
标签: java arrays multidimensional-array