类测试{
无效主([]参数){
int[] = 新 int[] { 80, 99, 88 }; // 声明数组,分配空间,并赋值
int[] = { 80, 99, 88 }; // 其他方式
此时的内存分配方式与动态初始化方式的区别在于,动态初始化数组元素的值为默认值(int为0),而静态初始化在分配空间的同时已经给元素赋值了,如图3所示。
图3 静态初始化数组的内存图
默认初始化
数组是引用类型,其元素相当于类的成员变量。 因此,一旦在数组中分配了空间,数组中的每个元素都会像成员变量一样被隐式初始化。
基本数据类型的默认初始化值有所不同:
byte、short、int、long类型数组元素的默认初始值为0。
float 类型数组元素的默认初始值为 0.0。
char 类型数组的元素的默认初始值为空格。
数组类型元素的默认初始值为 false。
对于引用数据类型,默认初始化值为 null,如示例 1 所示。
【示例1】数组默认初始化
;
班级 {
无效主([]参数){
int[] ints = new int[5]; // 定义不同数据类型的数组
[]=新[5];
char[] chars = 新的 char[5];
[]=新[5];
[]=新[5];
for (int i = 0; i < .; i++) { // 输出数组中的值
.out.("int数组的" + (i + 1) + "元素值:" + ints[i]);
.out.("数组的 " + (i + 1) + " 元素值: " + [i]);
.out.("Char数组的" + (i + 1) + "元素值:" + chars[i]);
.out.("数组的 " + (i + 1) + " 元素值: " + [i]);
.out.("数组的 " + (i + 1) + " 元素值: " + [i]);
程序编译完成后,运行结果如下:
int数组第一个元素值:0
数组第一个元素的值:0.0
char数组的第一个元素值:
数组第一个元素的值: false
数组第一个元素的值:null
int数组第二个元素值:0
数组第二个元素值:0.0
char数组第二个元素值:
数组第二个元素的值: false
数组第二个元素值:null
int数组第三个元素值:0
数组第三个元素值:0.0
char数组的第三个元素值:
数组第三个元素值: false
数组第三个元素值:null
int数组第4个元素值:0
数组第四个元素值:0.0
char数组的第四个元素值:
数组第四个元素的值: false
数组第四个元素值:null
int数组第五个元素值:0
数组的第五个元素值:0.0
char数组的第五个元素值:
数组第 5 个元素的值: false
数组第 5 个元素的值:null
从例1可以看出,定义一个数组后,系统会为该数组赋予一个默认值。 如果不改变数组的值,则使用数组时将使用系统的默认值。