• 招生咨詢熱線:4008-569-579 
  • 手機(jī)版
    用手機(jī)掃描二維碼直達(dá)商品手機(jī)版
招生咨詢熱線
4008-569-579
機(jī)構(gòu)主頁 > 機(jī)構(gòu)新聞 > 為什么Java中的局部變量必須要初始化
機(jī)構(gòu)主頁 > 機(jī)構(gòu)新聞>為什么Java中的局部變量必須要初始化

為什么Java中的局部變量必須要初始化

來源:北京達(dá)內(nèi)教育        時(shí)間:2023-05-26        熱度:29℃        返回列表

現(xiàn)在假如你是java語言的開發(fā)者,你已經(jīng)將對象保存在了堆內(nèi)存中,而將局部變量保存在了棧內(nèi)存中,你會怎么做呢?

Java 中的變量分為類變量,成員變量和局部變量,分別位于 JVM

的方法區(qū)、堆內(nèi)存和棧內(nèi)存中。類變量和成員變量都可以在類首次加載和類初始化時(shí),給出默認(rèn)值,但是局部變量就必須要在使用前賦值。

實(shí)際上,Java 完全可以設(shè)計(jì)成局部變量不需要初始化,只要作者們高興。事實(shí)上,就有這樣的語言,比如 C++。

當(dāng)然,C++不強(qiáng)制必須初始化,不代表就不用初始化,實(shí)際上,C++開發(fā)者也都是建議對局部變量初始化,以防止出現(xiàn)野指針這類事情。

其實(shí),不管是局部變量還是成員變量,都是必須要初始化的,那為什么成員變量會自動初始化?其實(shí)正是因?yàn)槌蓡T變量屬于對象,而對象是保存在

堆中的,所以jvm就在初始化類的時(shí)候把成員變量初始化呢,而如果我們在調(diào)用方法的時(shí)候,還要jvm去將局部變量也進(jìn)行初始化,是不是對會影響到性能呢?因此,直接強(qiáng)制局部變量必須要初始化反而更好。

電話咨詢

電話咨詢

咨詢電話:
4008-569-579
回到頂部

回到頂部