Java中的null代表著“空”,用于表示對象引用變量不指向任何對象。因此,null與任何非對象引用比較都會返回false,而與對象引用的比較結果則取決于具體情況。
// 定義一個空對象引用 Object obj = null; // 與非對象引用比較 if (obj == null) { System.out.println("obj is null"); } else { System.out.println("obj is not null"); } // 與對象引用比較 String str = "hello"; if (str.equals(null)) { System.out.println("str is null"); } else { System.out.println("str is not null"); }
第一個比較輸出“obj is null”,因為obj確實是null。第二個比較則會拋出NullPointerException異常,因為調用了equals方法時傳入了null對象,而該方法并不允許該情況發生。