Java数组是静态的
重点:在使用Java数组之前,必须要对数组进行初始化,分配合适的空间。
当数组被初始化之后,该数组所占的内存空间、数组长度都是不可变的
初始化包含两种类型:静态初始化与动态初始化
静态初始化
静态初始化是由程序员指定每个数组元素的初始值,由系统来确定数组的长度。例如以下代码描述了静态初始化的过程
String[] array1 = new String[]{
"关羽",
"张飞",
"马超",
"赵云",
"黄忠",
};
除此之外,静态初始化还有如下简单的形式:
String array2[] = {
"孙权",
"孙策",
"甘宁",
"周瑜",
"黄盖",
"孙尚香"
};
经过代码运行,计算数组array1与array2的长度:
array1的长度是5
array2的长度是6
由此可知:数组的静态初始化,程序员只需指定数组的元素即可,数据的长度由系统根据数据的元素数量决定,例如array1数组,程序员指定了“关羽”、“张飞”、“马超”、“赵云”、“黄忠”五个元素,则数组的长度即为5。
动态初始化
与静态初始化不同,Java数组的动态初始化只需指定数组的长度即可,系统将会为每个动态分配的数组元素赋初始值,各个数据类型元素的初始值如下:
| 数据类型 | 初始值 | 数据类型 | 初始值 |
|---|---|---|---|
| int | 0 | char | '\u0000' |
| byte | 0 | boolean | false |
| short | 0 | 类 | null |
| long | 0 | 接口 | null |
| float | 0.0 | 数组 | null |
| double | 0.0 |
例如,我们使用动态初始化定义一个字符串数组array3,计算array3的值
String[] array3 = new String[5];
System.out.println(Arrays.toString(array3));
System.out.println("Array3的长度:"+array3.length);
经过运行,我们可以得知,array3的值为[null, null, null, null, null],array3的长度为5,这说明系统定义了一个长度为5的数组,数组中每个元素的初始值为null。