4.6.2 基本类型数组的初始化

4.6.2 基本类型数组的初始化

对于基本类型数组而言,数组元素的值直接存储在对应的数组元素中,因此,初始化数组时,先为该数组分配内存空间,然后直接将数组元素的值存入对应数组元素中。

程序示例 基本类型数组的初始化 示意图

下面程序定义了一个int类型的数组变量,采用动态初始化的方式初始化了该数组,并显式为每个数组元素赋值

1
2
3
4
5
6
7
8
9
10
11
12
public class PrimitiveArrayTest {
public static void main(String[] args) {
// 定义一个int[]类型的数组变量
int[] iArr;
// 动态初始化数组,数组长度为5
iArr = new int[5];
// 采用循环方式为每个数组元素赋值。
for (int i = 0; i < iArr.length; i++) {
iArr[i] = i + 10;
}
}
}

上面代码的执行过程代表了基本类型数组初始化的典型过程。下面将结合示意图详细介绍这段代码的执行过程。

执行第一行代码int[] iArr;时,仅定义一个数组变量,此时内存中的存储示意图如图4.5所示。
这里有一张图片
执行了int[] iArr;代码后,仅在栈内存中定义了一个空引用(就是iArr数组变量),这个引用并未指向任何有效的内存,当然无法指定数组的长度。
当执行iArr = new int[5];动态初始化后,系统将负责为该数组分配内存空间,并分配默认的初始值:所有数组元素都被赋为值0,此时内存中的存储示意图如图4.6所示:
这里有一张图片
此时iArr数组的每个数组元素的值都是0,当使用循环为该数组的每个数组元素依次赋值后,此时每个数组元素的值都变成程序显式指定的值。显式指定每个数组元素值后的存储示意图如图4.7所示:
这里有一张图片
从图4.7中可以看到基本类型数组的存储示意图,每个数组元素的值直接存储在对应的内存中。操作基本类型数组的数组元素时,实际上相当于操作基本类型的变量