原始数组初始化没有值?

时间:2016-05-14 13:08:10

标签: java arrays primitive primitive-types

我刚刚找到一个随机代码段:

int[] i = new int[]{0,};

这怎么可能?

原始类型不能为空......

我只是想知道这是在创造什么......

2 个答案:

答案 0 :(得分:2)

此处new int[]将创建一个数组,并使用数组元素{1}初始化。

new int[]{1,}; // Create an array of int of size 1 with value 1 as a first element

如果您打印int[] i的长度。大小将打印1.因为如果找不到更多元素,则忽略上一个comma

System.out.println(i.length); // it will print 1 

此处i是一个包含array Onject的引用变量。而new int[]只负责创建Array

谢谢

答案 1 :(得分:2)

这会创建一个长度为1的数组,相当于

int[] i = new int[]{0};

最后一个逗号将被忽略,如JLS §10.6

中所述
  

尾随逗号可能出现在数组中的最后一个表达式之后   初始化并被忽略。