0
我有一个充满数据的Java数组。 我想知道的是,如果我做这样的事情:Java - 改变指针改变值?
int[] array = new int[2];
array[0] = 0;
array[1] = 1;
//other statements...
array[1] = array[0];
,如果我再次改变的array[1]
值,将array[0]
变化的价值呢? 谢谢!
我有一个充满数据的Java数组。 我想知道的是,如果我做这样的事情: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]
值没有改变 - 他们仍然指的是同一个对象 - 但对象的内容已经改变,因此输出在最后一行。
你试过了吗? – 2013-03-05 01:41:44
不,因为int是基元,而不是指向对象的指针 – Patashu 2013-03-05 01:42:09