怎樣用Java檢測一個變量有沒有被初始化?
我認為用之前判斷是不是為null最保險;當然這個不是用于判斷一個變量有沒有被初始化的方法。
成員變量虛擬機會自動初始化,如果是引用型會被默認null,其實也是初始化了,只不過初始化為null,用之前判斷下非null。局部變量好說,不初始化編譯過不去。
成員變量類里定義的變量,但在方法、構造方法和語句塊之外。
類變量:就是以static修飾的,這個好說,系統根據我們的需求,在不同的位置進行初始化。
實例變量:不以static修飾的,不管程序有沒有顯示的初始化,虛擬機都會自動初始化為默認值,隨著當前對象的建立而建立,隨著對象的銷毀而銷毀,存在于對象所在的堆內存中。整數類型默認0,浮點型默認0.0f/0.0d,布爾型默認false,引用型默認null。
局部變量形參:就是入參變量
方法局部變量:方法內
代碼塊局部變量:代碼塊內
對于局部變量,必須先經過顯式初始化,才能使用。如果編譯器確認一個局部變量在使用之前可能沒有被初始化,編譯器將報錯。
希望我的回答,能夠幫助到你!
我會持續分享Java程序開發、架構設計、職業發展等方面的知識和見解,希望能得到你的關注。