java:原始数组 - 它们被初始化了吗?

时间:2010-05-31 15:39:37

标签: java arrays

如果我在我的代码中使用语句,如

int[] a = new int[42];

它会将数组初始化为任何特定的东西吗? (例如0)我似乎记得这是在某处记录的,但我不确定要搜索什么。

4 个答案:

答案 0 :(得分:32)

15.10 Array Creation Expressions,JLS说

  

[...]创建一个指定长度的单维数组,并将数组的每个组件初始化为其默认值

并在4.12.5 Initial Values of Variables说:

  

对于类型int,默认值为零,即0

答案 1 :(得分:6)

创建时,数组会自动使用其类型的默认值进行初始化 - 在您的情况下为0。所有参考类型的默认值为false booleannull

答案 2 :(得分:4)

阵列将使用42 0

进行初始化

对于其他数据类型,它将使用默认值初始化,即

new boolean[42]; // would have 42 falses
new double[42]; // would have 42 0.0 ( or 0.0D )
new float[42]; // 42  0.0fs
new long[42]; // 42  0Ls 

等等。

对于一般的对象,它将为null:

String [] sa = new String[42]; // 42 nulls 

Date [] da = new Date[42]; // 42 nulls

答案 3 :(得分:0)

数组中的所有元素都初始化为零。我无法在Java文档中找到相关证据但我只是运行此确认:

int[] arrayTest = new int[10];
System.out.println(arrayTest[5]) // prints zero