基本类型数组的初始化
对于基本类型数组而言,数组元素的值直接存储在对应的数组元素中,因此,初始化数组时,先为该数组分配内存空间,然后直接将数组元素的值存入对应数组元素中。
下面程序定义了一个int[]类型的数组变量,采用动态初始化的方式初始化了该数组,并显式为每个数组元素赋值,程序如下:
程序清单:codes/04/4-6/TestPrimitiveArray.java
public class TestPrimitiveArray
{
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数组变量),这个引用并未指向任何有效的内存,当然无法指定数组的长度。
图4.5 定义iArr数组变量后的存储示意
当执行iArr = new int[5];动态初始化后,系统将负责为该数组分配内存空间,并分配默认的初始值:所有数组元素都被赋为0,此时内存中的存储示意如图4.6所示:
图4.6 动态初始化iArr数组后的存储示意
此时iArr数组的每个数组元素的值都是0,当循环为该数组的每个数组元素依次赋值后,此时每个数组元素的值都变成程序指定的值。显式指定数组元素值后存储示意如图4.7所示:
图4.7 显式指定每个数组元素的值
从图4.7中可以看到基本类型数组的存储示意图,每个数组元素的值直接存储在对应的内存里。操作基本类型数组的数组元素时,实际上就是操作基本类型的变量。
转自:http://www.educity.cn/develop/java/201307091125301394.htm