java中null是什麼,以及使用中要注意的事項,javanull
1.null既不是對象也不是一種類型,它僅是一種特殊的值,你可以將其賦予任何參考型別,你也可以將null轉化成任何類型,例如:
Integer i=null;
Float f=null;
String s=null;
但是不能把null賦值給基本類型,如int ,float,double等
int k=null ----------編譯器會報錯cannot convert from null to int
2.
null是關鍵字,像public、static、final。它是大小寫敏感的,你不能將null寫成Null或NULL,否則編譯器會報錯
3.包含null值的封裝類在Java拆箱產生基礎資料型別 (Elementary Data Type)時候都會拋出一個null 指標異常
例如:Integer i=null;int k=i;---------------------------拋出java.lang.NullPointerException
4.在遍曆集合或者數組的時候需要添加null判斷,不然當集合或者數組中包含null時,會拋出異常
5.在使用equals判斷字串是否相等時,要將常量字串放在equals的左邊,防止null 指標異常
例如:
String[] arr1={"abc","123",null,"sky"};
for (String s1 : arr1) {
boolean flag=s1.equals("sky");
}------------當取值到是=null時,會拋出null 指標異常,把s1.equals("sky")改為“sky”.equals(s1),就可以避免拋出異常
6.Null 字元串與null區別
類型
null表示的是一個對象的值,而並不是一個字串。例如聲明一個對象的引用,String a = null ;
""表示的是一個Null 字元串,也就是說它的長度為0。例如聲明一個字串String str = "" ;
記憶體配置
String str = null ; 表示聲明一個字串對象的引用,但指向為null,也就是說還沒有指向任何的記憶體空間;
String str = ""; 表示聲明一個字串類型的引用,其值為""Null 字元串,這個str引用指向的是Null 字元串的記憶體空間;
在java中變數和引用變數是存在棧中(stack),而對象(new產生的)都是存放在堆中(heap):