1. 程式人生 > >null與空串的區別,什麼是空指標,如何解決空指標異常

null與空串的區別,什麼是空指標,如何解決空指標異常

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”或者空值放於設定的值之前