Java 中的 Null 值是一個特殊的值,它表示一個對象或變量沒有被賦值或不存在。在程序中,我們常常需要和 Null 值比較。然而,Null 值和其他值在比較時有一些特殊的規則。
String s = null; System.out.println(s == null); // true,和 Null 值比較時返回 true System.out.println(s == "hello"); // false,和非 Null 值比較時返回 false
當將 Null 值和其他值進行相等比較時,結果始終是返回 false。這是因為 Null 值不能和其他值相等。比如下面的例子:
Integer i = null; System.out.println(i == null); // true,和 Null 值比較時返回 true System.out.println(i == 0); // false,和非 Null 值比較時返回 false
然而,我們可以使用equals()
方法來判斷一個 Null 值是否等于另一個值。比如:
String s = null; System.out.println(s.equals(null)); // false,Null 值不能和任何值相等 System.out.println("hello".equals(s)); // false,Null 值不能和任何值相等
Null 值也可以和instanceof
操作符一起使用。比如:
String s = null; System.out.println(s instanceof String); // false,Null 值不屬于任何類型
需要注意的是,如果我們嘗試將 Null 值賦給一個基本類型的變量時,會拋出NullPointerException
異常。比如:
int i = null; // 編譯錯誤:不能將 Null 值賦給基本類型變量 Integer i = null; int j = i; // 拋出 NullPointerException 異常
在程序中使用 Null 值時需要注意,避免 Null 引用異常的出現。