從零學java筆錄-第24篇 數組3 圖解一維數組在內存中
本節主要內容:
1:一維數組在動態賦值在內存中圖解。
2:本節總結&下節預告
本文出處:《凱哥陪你學系列之java基礎篇.Java基本語法篇》中第24篇 數組3 一維數組在內存中圖解
如上面的代碼我們先讀代碼:
第13行 在主函數(main()) 中創建了一個int 類型的一維數組長度等於3
在對應堆、棧中。
1:聲明數組&由系統初始化默認值
流程說明:
1.1:系統先執行main方法。所以main方法被壓棧到最下面
而int [] arr 又是main方法的局部變數。所以也在棧中(見上圖棧區)
1.2:在堆區系統先創建三個連續的區域。對應的內存地址為:[I@39ff48d8
然後給每個對應所以都賦默認值0(見上圖堆區)
1.3:系統將1.2中堆區創建的連續空間的地址值給arr
1.4:所以在第14行,我們輸出arr在內存中的地址就是[I@39ff48d8
2:動態給數組arr賦值
第16.17.18行操作如下:
流程說明:
2.1: 在動態賦值的時候,系統先根據arr對應堆區的地址值找到對應連續空間
2.2:然後根據對應索引替換相應的值
3:輸出新賦值的數據:
所以在19、20行輸出的實際值就是
在堆區地址值為[I@39ff48d8的連續區域中,下標索引為1和2的值。
從上圖中我們可以看到對應的值就是15 和30
所以列印到控制台上的值就是 15 和30
完整圖:
思考:
以上這些為什麼輸入的結果如下圖:
圖解如下:
本節總結:
通過本節學習,需要理解:
1:一維數組動態賦值,在內存中是怎麼處理的
下節預告:
通過本節學習我們知道了動態給數組賦值,既然有動態賦值,那麼是不是也有靜態賦值呢?靜態賦值又是什麼樣子呢?請學習下一篇:《從零學java筆錄-第25篇 數組4 數組的初始化靜態初始化及內存圖》
※從零學java筆錄-第23篇java中內存分配及棧、堆的區別
※從零學java筆錄-第22篇數組概念動態初始化內存中模型
※從零學java筆錄-第21篇 方法函數3之重載
※從零學java筆錄-第20篇 方法 函數2 函數練習
※從零學java筆錄-第19篇 方法函數1
TAG:凱哥java |
※從零學習Spring MVC框架「環境搭建和MVC架構」
※從零學茶,你需要了解茶中的14種滋味
※「門外漢」從零學起 DIY不怕摔的軟陶人
※跟我一起從零學——水彩坑
※在申請歐洲那些「零學費」的大學前,你需要明白的四件事
※從零學法語 揭開法語的面紗
※從零學木料,識木之各種木料的特點
※《葯神》主創也很神,思慧和牧師從零學起,黃毛為一個背影摔幾次