不初始化,Java陣列如何使用?

帶著紅領巾的雷鋒發表於2015-09-16

陣列是大多數程式語言提供的一種複合結構,如果程式需要多個型別相同的變數時,就可以考慮定義一個陣列。Java語言的陣列變數是引用型別的變數,因此具有Java獨有的特性。

在正常的Java開發中,使用Java陣列之前,我們都會對陣列進行初始化,為陣列中的元素分配記憶體空間、賦值等,但Java陣列一定要初始化嗎?不初始化可以 麼?

其實,java的陣列變數是引用型別的變數,並不是陣列物件本身,只要讓陣列變數指向有效的陣列物件,程式中就可使用該陣列變數,比如下面這個例子:

public class T {
/** * @param args */
public static void main(String[] args) {
// TODO Auto-generated method stub
//定義並初始化nums陣列
int nums[] = new int[]{3,13,4,6};
//定義一個prices陣列變數
int prices[];
//讓prices陣列指向nums所引用的陣列
prices = nums;
for(int i=0;i System.out.println(prices[i]);
}
//將prices陣列的第三個元素賦值為100
prices2 = 100;
//訪問nums陣列的第三個元素 將看到陣列100
System.out.println(nums2);
}
}

從上面程式碼可以看出,定義了prices陣列之後,並未對prices陣列進行初始化。 當執行int prices[]之後, 程式的記憶體分配如圖

enter image description here

從圖可以看出,此時的prices陣列還未指向任何有效的記憶體,未指向任何陣列物件,此時的程式還不可使用prices陣列變數。

當程式執行prices = nums之後,prices變數將指向nums變數所引用的陣列,此時prices變數和nums變數引用同一個陣列物件。

執行這條語句之後,prices變數已經指向有效的記憶體及一個長度為4的陣列物件,因此程式完全可以正常使用prices變數了。

對於陣列變數來說,它並不需要進行所謂的初始化,只要讓陣列變數指向一個有效的陣列物件,程式即可正常使用該陣列變數。

所以,Java語言中的陣列,不一定要初始化也可正常使用。Java初學者可以嘗試用上面這裡例子的方法,實際操作一下,加深印象。最後,希望小編的分享對大家有幫助。

相關閱讀:《Java 8 中物件型別轉換的改進

相關文章