Java中的null是一個(gè)特殊的值,表示一個(gè)引用變量不指向任何對(duì)象。當(dāng)一個(gè)變量被聲明為引用類(lèi)型時(shí),如果沒(méi)有給它賦值,那么它的默認(rèn)值就是null。
在Java中,null和空是不同的概念??眨╡mpty)通常是指數(shù)組、字符串或集合等數(shù)據(jù)結(jié)構(gòu)中不包含任何元素的情況。而null表示變量不指向任何對(duì)象。
在使用null時(shí)需要注意,如果試圖調(diào)用一個(gè)null引用變量的方法或者訪(fǎng)問(wèn)其屬性,就會(huì)拋出NullPointerException異常。因此在使用引用類(lèi)型變量之前,需要先檢查該變量是否為null。
public class NullExample { public static void main(String[] args) { String str = null; if(str != null) { System.out.println(str.length()); } } }
Java中還有一種情況可以使用null,就是在傳遞參數(shù)時(shí)。如果調(diào)用一個(gè)方法時(shí)不想傳遞任何參數(shù),可以使用null表示。例如:
public void doSomething(String str) { //TODO do something } public void main(String[] args) { doSomething(null); }
但是需要注意的是,在使用null作為參數(shù)時(shí),如果方法中對(duì)該參數(shù)進(jìn)行了操作,就會(huì)拋出NullPointerException異常。
區(qū)別是,空表示一個(gè)集合或者數(shù)組沒(méi)有元素,而null表示一個(gè)引用變量不指向任何對(duì)象。在使用時(shí)需要注意,如果試圖訪(fǎng)問(wèn)一個(gè)null引用變量的方法或者屬性,就會(huì)拋出NullPointerException異常。