2014-03-06 100 views
0

當您創建一個字符串數組,併爲其提供字符串值時,數組中的元素只是指向字符串對象的指針或者執行該對象本身。因此,在下面的代碼中,每個元素即Days [0]只是指向保存字符串值的字符串對象的指針,或者是數組中的對象。每個元素指向不同的字符串對象還是同一個對象? 這與int [] test = new int [6]這樣的基本類型數組有什麼不同,它們是否實際上保存了int值。由於字符串數組java

String[] days = new Array[7]; 
Days[0] = "Sunday"; 
Days[1] = "Monday"; 
Days[2] = "Tuesday"; 
Days[3] = "Wednesday"; 
Days[4] = "Thursday"; 
Days[5] = "Friday"; 
Days[6] = "Saturday"; 
+1

'天'是一個錯字,是('天')? – Rakesh

回答

3

當你創建一個字符串數組,並給它的字符串值是數組中的元素只是指向字符串對象或做持有對象本身。

對象數組始終包含對象的引用,而不是對象本身。

每個元素指向不同的字符串對象還是同一個對象?

在你的例子中,每個數組元素引用一個不同的字符串,從而引用一個不同的對象。如果假設您設置了days[6] = "Sunday";,那麼days[0]days[6]會引用相同的實際字符串(因爲它是文字),但是在days[6] = new String("Sunday");的情況下,這兩個元素可能引用不同但相同的字符串。

這與int [] test = new int [6]這樣的基本類型數組有什麼不同,它們實際上是否保存了int值。

是的,原始數組直接保存它們的值,因爲沒有要引用的對象。

+1

我覺得我也想在這裏提到[Java String Pool](http://stackoverflow.com/questions/2486191/java-string-pool)。 –

+0

「對象數組總是包含對象的引用,而不是對象本身」所以所有非原始變量都是這樣! –

+0

您可以從中段刪除「最有可能」的字樣。相等字符串文字始終引用相同的實際字符串。 –