Java陣列一定要初始化才能使用嗎?

小麥麥子發表於2015-09-21

陣列是大多數程式語言提供的一種複合結構,如果程式需要多個型別相同的變數時,就可以考慮定義一個陣列。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初學者可以嘗試用上面這裡例子的方法,實際操作一下,加深印象。最後,希望小編的分享對大家有幫助。

相關文章