Java中空格和null通常會被認(rèn)為是同一種東西,但實(shí)際上它們是很不一樣的。在Java中,空格代表著一個(gè)字符(即“空格字符”),而null代表著一個(gè)空的對象引用。
當(dāng)將一個(gè)字符串分割成單獨(dú)的詞語時(shí),空格會被認(rèn)為是一個(gè)分隔符。例如,在以下代碼中:
String s = "Hello World"; String[] words = s.split(" ");
我們將字符串s分割成了兩個(gè)單詞“Hello”和“World”,這是由于空格是用作分隔符的。如果我們使用null來代替空格,則不會分割該字符串。
另外一個(gè)重要的區(qū)別是在于對象引用。當(dāng)我們聲明一個(gè)對象引用時(shí),如果沒有對其進(jìn)行初始化,則默認(rèn)為null。例如:
String str; if (str == null) { System.out.println("str是空的!"); }
在這個(gè)例子中,我們聲明了一個(gè)String類型的str變量,但沒有對其進(jìn)行初始化。由于默認(rèn)是null,當(dāng)我們在if語句中測試它時(shí)會返回true,并打印出“str是空的!”。
總之,空格和null在Java中是兩個(gè)完全不同的概念,不能混為一談。空格代表一個(gè)字符,而null代表一個(gè)空的對象引用。