從零學(xué)java筆錄-第24篇 數(shù)組3 圖解一維數(shù)組在內(nèi)存中

本節(jié)主要內(nèi)容:

1:一維數(shù)組在動(dòng)態(tài)賦值在內(nèi)存中圖解。

2:本節(jié)總結(jié)&下節(jié)預(yù)告

本文出處:《凱哥陪你學(xué)系列之java基礎(chǔ)篇.Java基本語法篇》中第24篇 數(shù)組3 一維數(shù)組在內(nèi)存中圖解


如上面的代碼我們先讀代碼:

第13行 在主函數(shù)(main()) 中創(chuàng)建了一個(gè)int 類型的一維數(shù)組長度等于3

在對(duì)應(yīng)堆、棧中。

1:聲明數(shù)組&由系統(tǒng)初始化默認(rèn)值

流程說明:

1.1:系統(tǒng)先執(zhí)行main方法。所以main方法被壓棧到最下面

而int [] arr 又是main方法的局部變量。所以也在棧中(見上圖棧區(qū))

1.2:在堆區(qū)系統(tǒng)先創(chuàng)建三個(gè)連續(xù)的區(qū)域。對(duì)應(yīng)的內(nèi)存地址為:[I@39ff48d8

然后給每個(gè)對(duì)應(yīng)所以都賦默認(rèn)值0(見上圖堆區(qū))

1.3:系統(tǒng)將1.2中堆區(qū)創(chuàng)建的連續(xù)空間的地址值給arr

1.4:所以在第14行,我們輸出arr在內(nèi)存中的地址就是[I@39ff48d8

2:動(dòng)態(tài)給數(shù)組arr賦值

第16.17.18行操作如下:

流程說明:

2.1: 在動(dòng)態(tài)賦值的時(shí)候,系統(tǒng)先根據(jù)arr對(duì)應(yīng)堆區(qū)的地址值找到對(duì)應(yīng)連續(xù)空間

2.2:然后根據(jù)對(duì)應(yīng)索引替換相應(yīng)的值

3:輸出新賦值的數(shù)據(jù):

所以在19、20行輸出的實(shí)際值就是

在堆區(qū)地址值為[I@39ff48d8的連續(xù)區(qū)域中,下標(biāo)索引為1和2的值。

從上圖中我們可以看到對(duì)應(yīng)的值就是15 和30

所以打印到控制臺(tái)上的值就是 15 和30

完整圖:

思考:

以上這些為什么輸入的結(jié)果如下圖:

圖解如下:

本節(jié)總結(jié):

通過本節(jié)學(xué)習(xí),需要理解:

1:一維數(shù)組動(dòng)態(tài)賦值,在內(nèi)存中是怎么處理的

下節(jié)預(yù)告:

通過本節(jié)學(xué)習(xí)我們知道了動(dòng)態(tài)給數(shù)組賦值,既然有動(dòng)態(tài)賦值,那么是不是也有靜態(tài)賦值呢?靜態(tài)賦值又是什么樣子呢?請(qǐng)學(xué)習(xí)下一篇:《從零學(xué)java筆錄-第25篇 數(shù)組4 數(shù)組的初始化靜態(tài)初始化及內(nèi)存圖》

歡迎關(guān)注凱哥公眾號(hào):凱哥Java

歡迎訪問凱哥個(gè)人網(wǎng)站:www.kaigejava.com

本文在凱哥個(gè)人網(wǎng)站所在位置:http://www.kaigejava.com/article/detail/94

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容