我在Java中有一个充满数据的数组。
我想知道的是,如果我做这样的事情:

int[] array = new int[2];
array[0] = 0;
array[1] = 1;

//other statements...

array[1] = array[0];


如果再次更改array[1]的值,array[0]的值也会更改吗?
谢谢!

最佳答案

如果我再次更改array [1]的值,array [0]的值也会改变吗?


否。此声明:

array[1] = array[0];


只需将第二个元素的值复制到第一个元素。就像您有两个单独的变量一样:

int x = 10;
int y = x;
// Further changes to x don't affect y


如果您有一系列引用,例如:

StringBuilder[] builders = new StringBuilder[10];
builders[0] = new StringBuilder("Original");
builders[1] = builders[0];
builders[0] = new StringBuilder("Hello");
System.out.println(builders[1]); // Prints Original


最后一个赋值语句不会更改builders[1]的值...但是如果相反,我们将这样写:

builders[0].append("Foo");
System.out.println(builders[1]); // Prints OriginalFoo


那么builders[0]builders[1]的值没有改变-它们仍然引用同一个对象-但是该对象的内容已经改变,因此输出在最后一行。

10-08 16:43