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();

}

...