Java數組一定要初始化才能使用嗎?
數組是大多數編程語言提供的一種復合結構,如果程序需要多個類型相同的變量時,就可以考慮定義一個數組。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<prices.length;i++){
- System.out.println(prices[i]);
- }
- //將prices數組的第三個元素賦值為100
- prices[2] = 100;
- //訪問nums數組的第三個元素 將看到數組100
- System.out.println(nums[2]);
- }
- }
從上面代碼可以看出,定義了prices數組之后,并未對prices數組進行初始化。 當執行int prices[]之后,
程序的內存分配如圖
從圖可以看出,此時的prices數組還未指向任何有效的內存,未指向任何數組對象,此時的程序還不可使用prices數組變量。
當程序執行prices = nums之后,prices變量將指向nums變量所引用的數組,此時prices變量和nums變量引用同一個數組對象。
執行這條語句之后,prices變量已經指向有效的內存及一個長度為4的數組對象,因此程序完全可以正常使用prices變量了。
對于數組變量來說,它并不需要進行所謂的初始化,只要讓數組變量指向一個有效的數組對象,程序即可正常使用該數組變量。
所以,Java語言中的數組,不一定要初始化也可正常使用。Java初學者可以嘗試用上面這里例子的方法,實際操作一下,加深印象。***,希望小編的分享對大家有幫助。