Java變量初始化之后的默認值問題


1) 局部變量初始化(局部變量:函數、語句中的變量,只在所屬區域內有效)
局部變量聲明后,Java虛擬機不會自動給它初始化為默認值。
因此對於局部變量,必須經過顯示的初始化,才能使用它。
如果使用一個沒有被初始化的局部變量,編譯器會報錯。

局部變量存儲於虛擬機棧的局部變量表中
例:

 

2) 對於類的成員變量,不管程序有沒有顯示的初始化,Java虛擬機都會先自動給它初始化為默認值。
對於數組,數組引用類型的變量的默認值為null。當數組變量實例化后,如果沒有顯式地為每個元素賦值,Java會把該數組的所有元素初始化為相應類型的默認值。
這是因為所有對象實例以及數組是在堆上分配內存的。在內存分配完成后,虛擬機需要將分配到的內存空間都初始化為零值(不包括對象頭)。這一操作保證了對象的實例字段在java代碼中可以不賦初值就直接使用,程序能訪問這些字段的數據類型所對應的零值。

例1:

例2:

運行結果:

例3:

運行結果:

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM