在 Java 中,null字面值用來表示沒有值。
Java 中的基本資料型態都有預設值,因此永遠不會是null。
依照慣例,它們以小寫字母開頭,例如int。
參考型別包含物件的記憶體位址,因此可以有null值。
它們通常以大寫字母開頭,例如String。
試著把null值指定給基本型別的變數,會造成編譯時期錯誤,因為這種變數永遠帶有被指定型別的預設值。
// Throws compile time error stating the required type is int, but null was provided
int number = null;
把null值指定給參考變數不會造成編譯時期錯誤,因為參考變數可以為null。
//No error will occur as the String variable str is nullable
String str = null;
存取值為null的參考變數雖然可以順利編譯,但會在執行時期拋出NullPointerException。
int[] arr = null;
// Throws NullPointerException at runtime
arr.length;
當你試著存取一個值為 null、卻需要物件的參考變數時,就會拋出NullPointerException。
為了安全地處理可為null的值,在操作它們之前應該先檢查它們是否為null,這可以透過==或!=這類相等運算子來完成:
int[] arr = null;
if(arr != null) {
System.out.println(arr.length);
} else {
//Perform an alternate action when arr is null
}