Java陣列在記憶體中是如何存放的

一個數組可以分解為多個數組元素,這些陣列元素可以是基本資料型別或是構造型別。因此按陣列元素的型別不同,陣列又可分為數值陣列、字元陣列、指標陣列、結構陣列等各種類別。那麼Java陣列在記憶體中是如何存放的?以下僅供參考!

Java陣列在記憶體中是如何存放的

Java中有兩種型別的陣列:

基本資料型別陣列;

物件陣列;

當一個物件使用關鍵字“new”建立時,會在堆上分配記憶體空間,然後返回物件的引用,這對陣列來說也是一樣的,因為陣列也是一個物件;

一維陣列

int[] arr = new int[3];

在以上程式碼中,arr變數存放了陣列物件的引用;如果你建立了空間大小為10的整形陣列,情況是一樣的',一個數組物件所佔的空間在堆上被分配,然後返回其引用;

二維陣列

那麼二維陣列是如何儲存的呢?事實上,在Java中只有一維陣列,二維陣列是一個存放了陣列的陣列,如下程式碼及示意圖:

int[ ][ ] arr = new int[3][ ];

arr[0] = new int[3];

arr[1] = new int[5];

arr[2] = new int[4];

對於多維陣列來說,道理是一樣的;

陣列物件及其引用存放在記憶體中的哪裡?

在Java中,陣列同樣是一個物件,所以物件在記憶體中如何存放同樣適用於陣列;

正如我們都知道的,java執行時資料區包括堆,JVM棧和其它。如下程式碼是一個小例子,那麼就讓我們來看看陣列和它的引用在記憶體中是如何存放的.

class A { int x; int y;

}

ic void m1() { int i = 0;

m2();

}public void m2() {

A a = new A();

}

...