1. 程式人生 > >物件賦值為null時 記憶體分配情況,以及什麼時候使用效率高

物件賦值為null時 記憶體分配情況,以及什麼時候使用效率高

對於成員變數也就是instance member來說是沒區別的,物件初始化的時候會自動賦值成null。但是對於區域性變數也就是local variable來說,不賦值初始化使用編譯會報錯。

對於一般的物件成員來說 分配好空間都會預先分配一個null值。所以寫不寫這個沒什麼特別的區別。但對於final成員來說,他只能被賦值一次,如果這裡 寫了=null已經算一次賦值了,那麼你建構函式裡面就不能再給這個final成員賦值。

當執行new為一個物件分配記憶體時,Java自動初始化所分配的記憶體空間。對於數值變數,賦初值0。對於布林變數,初值為false。對於引用,即物件型別的任何變數,使用一個特殊的值null。

   在Java中,null值表示引用不指向任何物件。執行過程中系統發現使用了這樣一個引用時·可以立即停止進一步的訪問,不會給系統帶來任何危險。

 

  自動初始化只用於成員變數,對方法中的自動變數不起作用。Java規定,任何變數使用之前,必須對變數賦值。由於方法內的自動變數不能進行自動初始化,因此要求程式設計師顯式地對其賦值。當然可以給變數賦值為null。如果在變數賦值之前使用它,編譯器會指出一條錯誤資訊。告知自動變數未被初始化。