null與空串的區別,什麼是空指標,如何解決空指標異常
阿新 • • 發佈:2019-01-29
null與空串的區別
1, null不佔用空間,空字串佔用一定記憶體空間
2, null可以賦值給任何物件,而空字條串只能賦值給String
3, 呼叫null的方法會返回nullpointerexception,呼叫空字串的方法不會報錯
4, null本身就是個物件,但它是一個不確定的物件,只能給引用形變數賦值,不能給基本型別賦值.(如 int a=null;是錯誤的)
什麼是空指標
1,空指標異常產生的主要原因如下:
(1)當一個物件不存在時又呼叫其方法會產生異常:物件不存在
(2)當訪問或修改一個物件不存在的欄位時會產生異常:方法不存在
(3)字串變數未初始化
(4)介面型別的物件沒有用具體的類初始化,
比如:List lt;會報錯
List lt = new ArrayList();則不會報錯了
(5) 當一個物件的值為空時,你沒有判斷為空的情況。你可以試著把下面的程式碼前加一行程式碼:
if(str!=null && str!="") 改成:if(null!=str); if(null!=str!&&!"".equals(str))
或者if((“”).equals(str))
空指標的解決辦法:
重點關注報錯發生的所在行,通過空指標異常產生的兩條主要原因診斷具體的錯誤。同時為了避免空指標的發生,最好在做判斷處理時將“null”或者空值放於設定的值之前