在Java編程語(yǔ)言中,經(jīng)常會(huì)使用到null值。null值在Java中表示一個(gè)空對(duì)象引用,或者說表示一個(gè)變量沒有指向任何對(duì)象實(shí)例。
Object obj = null;
null值是一個(gè)特殊的值,它只能賦值給引用類型的變量,不能賦值給基本類型的變量,比如int、boolean等。如果試圖將null賦值給基本類型的變量,就會(huì)發(fā)生編譯錯(cuò)誤。
int i = null; // 編譯錯(cuò)誤
除了null值之外,還有一個(gè)“null”的概念,它表示一個(gè)沒有聲明的變量或?qū)ο螅蛘弑硎疽粋€(gè)對(duì)象不存在的狀態(tài)。
int j; System.out.println(j); // 編譯錯(cuò)誤:變量j未初始化 String s = "Hello"; s = null; System.out.println(s.length()); // 運(yùn)行時(shí)錯(cuò)誤:s為null,無(wú)法調(diào)用length()方法
可以看到,Java中的null值和“null”的概念是有區(qū)別的。null值是一個(gè)特殊的值,表示一個(gè)空對(duì)象引用,只能賦值給引用類型的變量;而“null”則表示一個(gè)不存在或未初始化的對(duì)象或變量,可能會(huì)導(dǎo)致編譯錯(cuò)誤或運(yùn)行時(shí)錯(cuò)誤。