Java陣列在記憶體中是什麼樣子的?
小夥伴們注意了!
小編在這裡給大家送上關注福利:
轉發本文,關注+私信小編“資料”即可領取小編精心準備的資料一份!
在Java中,陣列儲存原始值(int, char,…)或引用(a.k。
一個指標)到物件。
當使用“new”建立物件時,將在堆中分配記憶體空間並返回引用。
陣列也是如此,因為陣列是Java中的物件。
1. 一維陣列

·
int[] arr只是對包含3個整數的陣列的引用。
如果您建立一個包含10個整數的陣列,它是相同的——分配一個數組並返回一個引用。

2. 二維陣列
二維陣列呢?
實際上,Java中只能有一維陣列。
二維陣列就是一維陣列的陣列。

多維陣列與您所看到的類似。
3.它們位於記憶中的什麼位置?
陣列也是Java中的物件,所以物件在記憶體中的樣子適用於陣列。
我們知道JVM執行時資料區域包括堆、JVM堆疊和其他資料區域。
對於下面的簡單示例,讓我們看看陣列及其引用儲存在何處。

當m1被呼叫時,一個新的幀(frame -1)被推入堆疊,並且區域性變數i也在frame -1中建立。然後m2在m1中呼叫,另一個新框架(frame -2)被推入堆疊。在m2中,類A的物件在堆中建立,引用變數放在Frame-2中。現在,在這一點上,堆疊和堆看起來像這樣:

陣列與物件的處理方式相同,因此陣列在記憶體中的位置是直接的。
最後,想學習Java的小夥伴們!
轉發!
轉發後關注+私信回覆:“資料”就可以拿到一份我為大家準備的Java學習資料!