java中數組爲空和數組長度爲0的區別

兩者如果在一句代碼中,則要先判斷是否爲空,否則可能會出現空指針異常。

eg:if (array == null || 0 == array.length) {...}   // 這種寫法正確,因爲執行到 “0 == array.length”則說明數組不爲空,不會產生空指針異常。

       if (0 == array.length || array == null) {...} // 這種寫法可能會產生空指針異常。

例:

int[] n;        //只聲明瞭一數組變量;                              

int[] nil = null;        //聲明一數組變量,並賦值 null,nil是一個數組類型的空引用,不指向任何對象;                             
int[] zero = new int[0];  //聲明並創建一數組對象,長度是0;
對於上面三條語句,一個比一個做的動作多,系統佔用也是後面的多:
語句一變量還沒初始化,打印 n 會出錯:“可能尚未初始化變量 n”;
語句二雖已初始化,打印“nil.length”會出現異常:NullPointerException;

語句三打印“nil.length”是0,數組內還沒有元素。

       假設一個方法返回一個數組,如果它返回null,則調用方法必須先判斷是否返回null,才能對放回數組進一步處理,而如果返回空數組,則無須null引用檢查。鑑於此,返回數組的方法在沒有結果時我們通常返回空數組,而不是null,這樣做對於函數調用者的處理比較方便。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章