Java中的局部變量為什們要初始化?如果你現(xiàn)在是一名 Java 語言開發(fā)人員,你將對象存儲在棧內(nèi)存中,將局部變量存儲在棧內(nèi)存中,你會怎么做?
Java中的變量分為類變量、成員變量和局部變量,它們分別位于 JVM 的方法區(qū)、堆內(nèi)存和棧內(nèi)存中。類變量和成員變量都可以在類首次加載和類初始化時賦予默認值,但局部變量必須在使用前賦值。
實際上,Java 可以設計成不需要初始化局部變量,只要作者滿意。其實還有這樣的語言,比如C++。
當然,C++不需要初始化,不代表不需要初始化。事實上,C++ 開發(fā)者也建議對局部變量進行初始化,以防止出現(xiàn)野指針之類的事情。
其實不管是局部變量還是成員變量都必須初始化,那為什么成員變量會自動初始化呢?其實正是因為成員變量是屬于對象的,而對象是存放在堆中的,所以jvm在初始化類的時候,對成員變量進行初始化,而如果我們還需要JVM來初始化調(diào)用方法時的局部變量,會不會影響性能?因此,直接強制初始化局部變量是比較困難的。挺好的。更多關(guān)于“Java培訓”的問題,歡迎咨詢千鋒教育在線名師。千鋒已有十余年的培訓經(jīng)驗,課程大綱更科學更專業(yè),有針對零基礎(chǔ)的就業(yè)班,有針對想提升技術(shù)的好程序員班,高品質(zhì)課程助理你實現(xiàn)java程序員夢想。