一、null是代表不確定的物件
Java中,null是一個關鍵字,用來識別一個不確定的物件。因此可以將null賦給參考型別變量,但不可以將null賦給基本型別變數。
例如:int a = null;是錯誤的。 Ojbect o = null是正確的。
Java中,變數的適用都遵循一個原則,先定義,初始化後,才可以使用。我們不能int a後,不給a指定值,就去印a的值。這條對對於引用型別變數也是適用的。
有時候,我們定義一個引用類型變量,在剛開始的時候,無法給出一個確定的值,但是不指定值,程式可能會在try語句區塊中初始化值。這時候,我們下面使用變數的時候就會報錯。這時候,可以先給變數一個null值,問題就解決了。例如:
Connection conn = null try { conn = DriverManager.getConnection("url", "user", "password"); } catch (SQLException e) { e.printStackTrace(); } String catalog = conn.getCatalog();
如果剛開始的時候不指定conn = null,則最後一句話就會報錯。
java學習影片推薦:java入門學習
二、null本身不是對象,也不是Object的實例
null本身雖然能代表一個不確定的對象,但就null本身來說,它不是對象,也不知道什麼型,也不是java.lang.Object的實例。
可以做一個簡單的例子:
//null是对象吗? 属于Object类型吗? if (null instanceof java.lang.Object) { System.out.println("null属于java.lang.Object类型"); } else { System.out.println("null不属于java.lang.Object类型"); }
結果會輸出:null不屬於java.lang.Object型別
三、Java預設給變數賦值
在定義變數的時候,如果定義後沒有給變數賦值,則Java在執行時會自動賦值變數。賦值原則為整數型別int、byte、short、long的自動賦值為0,搭配小數點的float、double自動賦值為0.0,boolean的自動賦值為false,其他各供引用型別變數自動賦值為null。
四、容器類型與null
List:允許重複元素,可以加入任意多個null。
Set:不允許重複元素,最多可以加入一個null。
Map:Map的key最多可以加入一個null,value欄位沒有限制。
數組:基本類型數組,定義後,如果不給定初始值,則java運行時會自動給定值。引用類型數組,不給定初始值,則所有的元素值為null。
五、null的其他作用
1、判斷一個引用型別資料是否null。用==來判斷。
2、釋放內存,讓一個非null的引用類型變數指向null。這樣這個物件就不再被任何物件應用了。等待JVM垃圾回收機制去回收。
更多相關文章推薦:java語言入門
#以上是java中null是物件麼的詳細內容。更多資訊請關注PHP中文網其他相關文章!