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