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

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

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

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

Java 中的變量分為類(lèi)變量,成員變量和局部變量,分別位于 JVM

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

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

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

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

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

電話咨詢(xún)

電話咨詢(xún)

咨詢(xún)電話:
4008-569-579
回到頂部

回到頂部