数组的动态初始化是指在创建数组时只声明了数组的容量(长度),而没有给数组中的元素赋初始值。
具体来说,Java 数组的动态初始化过程分为两个步骤:
1、声明数组:在声明数组时,需要使用 new 关键字和数据类型来创建一个数组对象。
例如,下面的代码创建了一个名为 myArray 的动态整型数组,数组长度为 5:
int[] myArray = new int[5];
2、给数组元素赋值:在声明数组之后,可以使用下标索引法给数组元素赋值,基本语法如下:
arrayName[index] = value;
其中的 arrayName 是数组的名称,index 表示元素的位置,从 0 开始计数,最大值为数组长度减一,value 是要赋给这个元素的值。
例如,将第一个元素设置为 10,可以使用以下代码:
myArray[0] = 10;
引用类型的数组在动态初始化时也是类似的。
例如,下面的代码创建了一个动态字符串数组,并为其中的元素分配了默认值 null:
String[] strArray = new String[5];
在上面的代码中,strArray 是一个长度为 5 的字符串数组,它的每个元素都是 null。可以使用与前面相似的方法为这些元素设置值。
需要注意的是,创建数组对象时需要指定数组的长度,而无法在创建后更改数组的大小。
数组的默认初始化类型:
数据类型 | 默认值 |
---|---|
byte | 0 |
short | 0 |
int | 0 |
long | 0L |
float | 0.0f |
double | 0.0d |
char | '\u0000'(空格) |
boolean | false |
对于引用类型的数组,如果没有为数组元素赋值,则所有元素都会被自动初始化为 null 。例如,在创建一个长度为 3 的字符串数组并未为其元素赋值时,数组中的每个元素都会被自动初始化为null。
静态初始化和动态初始化的区别:静态初始化是在定义数组时就为数组元素分配空间并给定初始值;动态初始化是在定义数组时只给出数组长度,且数组元素没有初始值,需要在代码中手动为每个元素赋值。
静态初始化能够一次性为数组所有元素分配空间并赋初值,适用于元素数量较少、初值确定的情况;而动态初始化需要手动为每个元素赋值,适用于元素数量未知、初值不确定的情况。