更新時(shí)間:2020-01-10 16:03:01 來(lái)源:動(dòng)力節(jié)點(diǎn) 瀏覽3232次
在java中,聲明一個(gè)數(shù)組過(guò)程中,是如何分配內(nèi)存的?
1. 當(dāng)聲明數(shù)組類(lèi)型變量時(shí),為其分配了(32位)引用空間,由于未賦值,因此并不指向任何對(duì)象;
2. 當(dāng)創(chuàng)建了一個(gè)數(shù)組對(duì)象(也就是new出來(lái)的)并將其地址賦值給了變量,其中創(chuàng)建出來(lái)的那幾個(gè)數(shù)組元素相當(dāng)于引用類(lèi)型變量,因此各自占用(32位的)引用空間并按其默 認(rèn)初始化規(guī)則被賦值為null
3. 程序繼續(xù)運(yùn)行,當(dāng)創(chuàng)建新的對(duì)象并(將其地址)賦值給各數(shù)組元素,此時(shí)堆內(nèi)存就會(huì)有值了
Java變量一定要初始化嗎?
不一定。Java數(shù)組變量是引用數(shù)據(jù)類(lèi)型變量,它并不是數(shù)組對(duì)象本身,只要讓數(shù)組變量指向有效的數(shù)組對(duì)象,即可使用該數(shù)組變量。對(duì)數(shù)組執(zhí)行初始化,并不是對(duì)數(shù)組變量進(jìn)行初始化,而是對(duì)數(shù)組對(duì)象進(jìn)行初始化——也就是為該數(shù)組對(duì)象分配一塊連續(xù)的內(nèi)存空間,這塊連續(xù)的內(nèi)存空間就是數(shù)組的長(zhǎng)度。
基本類(lèi)型變量都放在棧內(nèi)存中?
錯(cuò)。應(yīng)該這樣說(shuō):所有局部變量都放在棧內(nèi)存里保存的,不管其是基本類(lèi)型的變量,還是引用類(lèi)型變量,都是存儲(chǔ)在各自的方法棧區(qū)中;但是引用類(lèi)型變量所引用的對(duì)象(包括數(shù)組、普通java對(duì)象)則總是存儲(chǔ)在堆內(nèi)存中。
引用變量何時(shí)只是棧內(nèi)存中的變量本身,何時(shí)又變?yōu)橐脤?shí)例的java對(duì)象?
引用變量本質(zhì)上只是一個(gè)指針,只要程序通過(guò)引用變量訪(fǎng)問(wèn)屬性,或者通過(guò)引用變量來(lái)調(diào)用方法,該引用變量將會(huì)由他所引用的對(duì)象代替。
以上就是動(dòng)力節(jié)點(diǎn)Java培訓(xùn)機(jī)構(gòu)小編介紹的“2020年最新Java數(shù)組面試題”的內(nèi)容,希望對(duì)大家有幫助,如有疑問(wèn),請(qǐng)?jiān)诰€(xiàn)咨詢(xún),有專(zhuān)業(yè)老師隨時(shí)為你服務(wù)。
相關(guān)推薦
相關(guān)閱讀
0基礎(chǔ) 0學(xué)費(fèi) 15天面授
有基礎(chǔ) 直達(dá)就業(yè)
業(yè)余時(shí)間 高薪轉(zhuǎn)行
工作1~3年,加薪神器
工作3~5年,晉升架構(gòu)
提交申請(qǐng)后,顧問(wèn)老師會(huì)電話(huà)與您溝通安排學(xué)習(xí)
初級(jí) 202925
初級(jí) 203221
初級(jí) 202629
初級(jí) 203743