之前我们讲到了无论是一维数组还是二维数组,其初始化方式都有两种:1.动态初始化 2.静态初始化。对于Java语言中数组被定义了之后未被初始化,那是否这个数组中的元素就没有值呢?显然不是的,下面我们用实际的代码来看一下Java语言中数组元素的默认初始化值是什么。
我们知道,Java语言中数组元素的数据类型有:整型:byte,short,int,long;浮点型:float,double;字符型:char;布尔型:boolean;引用类型:String等。
- 整型byte,short,int,long
以下面代码块为例:
byte[] array_one = new byte[1];
short[] array_two = new short[1];
int[] array_three = new int[1];
long[] array_four = new long[1];
System.out.println("代码输出:");
System.out.println(array_one[0]);
System.out.println(array_two[0]);
System.out.println(array_three[0]);
System.out.println(array_four[0]);
由以上代码块不难看出,对于Java语言中数组元素为整型时,其默认初始化值为0。也就是说对于byte,short,int,long型的数组元素,数组被定义后未初始化,其默认值为0。
2.浮点型float,double
以下面代码块为例:
double[] double_one = new double[1];
float[] float_one = new float[1];
System.out.println(double_one[0]);
System.out.println(float_one[0]);
无论是double还是float,其默认初始化值都为0.0
3.布尔型boolean
boolean[] boolean_one = new boolean[1];
System.out.println("代码输出:");
System.out.println(boolean_one[0]);
这里数组元素为布尔类型的默认初始化值为false,而并非true。
4.字符型char和引用型String
这里为什么把字符型char和引用型String放在一起呢?先看下面的代码。
String[] string_one = new String[1];
System.out.println("代码输出:");
System.out.println(string_one[0]);
我们看到,当数组元素为String类型时,其默认初始化值为null。那么我们猜测一下,数组元素为char类型时,其默认初始化值是什么呢?也为null吗?不,不是的。当数组元素为char类型时,其默认初始化值为空格。
char[] char_one = new char[1];
System.out.println("代码输出:");
System.out.println(char_one[0]);
代码输出的蓝色高亮部分就是char类型数组元素的默认初始化值。
虽然这里讲的是Java中数组元素的默认初始化值,其实在Java语言中,变量的默认初始化值也是一样的,下表给出了Java语言中各类型变量的默认初始化值。