20260103_配列のメモリ構造について
配列には大きくプリミティブ型配列と参照型配列があり、それぞれについてメモリ構造、すなわちスタック領域とヒープ領域領域に何が格納されるか、をTILする。
プリミティブ型配列
java
int[] a = new int[2];
a[0] = 0;
a[1] = 1;上記はプリミティブ型配列の1例としてint型配列を挙げている。 この場合、ヒープ領域には配列オブジェクトと各要素の値が設定され、スタック領域には配列オブジェクトへの参照が設定される。
[スタック]
a ----------> [ヒープ 配列オブジェクト]
element[0]:0
element[1]:1参照型配列
java
String[] s = new String[2];
s[0] = "hoge";
s[1] = "fuga";上記は参照型配列の1例としてString型配列を挙げている。 この場合、ヒープ領域①には配列オブジェクトが、ヒープ領域②③には各要素の文字列オブジェクトが、スタック領域には配列オブジェクトへの参照が設定される。
[スタック]
s ----------> [ヒープ① 配列オブジェクト]
element[0]: ----------> [ヒープ② String"hoge"]
element[1]: ----------> [ヒープ③ String"fuga"]