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