Java 中 null 和空字符串的區別
瀏覽人數:436最近更新:
一、概述
在本教程中,我們將了解 Java 中null和空String之間的區別。這是兩個截然不同的概念,但有時它們可能無法按預期與String一起使用。
2. Java中的null String
null是 Java 中的保留關鍵字,表示沒有任何值。此外,為對象引用null空值意味著它不引用內存中的任何對像或值。
默認情況下,Java 根據類型用null值初始化引用變量,用默認值初始化基元。因此,我們不能將 null分配**null primitives** 。
如果我們將null分配給一個String對象,它會被初始化但不會被實例化,因此沒有任何值或引用。
3. Java 中的空String
空String是沒有字符的有效String對象,因此,所有String操作都可用於該對象。
讓我們看一些測試,看看兩者之間的區別:
String nullString = null;
String emptyString = "";
assertTrue(emptyString.equals(""));
assertThrows(NullPointerException.class, () -> nullString.length());
在上面的測試用例中,我們定義了兩個String對象,一個為空,一個為null 。然後我們嘗試使用String類中可用的方法。
測試用例成功執行,從而驗證String操作可用於空String,但不可用於null String.
讓我們檢查另一個場景,我們檢查兩者是否相等:
String nullString = null;
String emptyString = "";
assertFalse(emptyString.equals(nullString));
assertFalse(emptyString == nullString);
在此測試場景中,我們使用equals() and ==比較兩個String對像是否相等。執行測試用例後,它成功驗證了null和空String不相同。
4。結論
在本文中,我們了解了 Java 中null和空String之間的區別。首先,我們定義了概念,然後查看它們在不同場景中的表現。
本質上, null表示沒有任何值,而空String表示有效的String.空String有一些長度為零的值。
與往常一樣,所有示例的源代碼都可以在 GitHub 上找到。
本作品係原創或者翻譯,採用《署名-非商業性使用-禁止演繹4.0國際》許可協議