数组初始化的差异

时间:2014-02-10 09:39:41

标签: java arrays

在查看源文件时,我看到了两种数组初始化方法。我想知道

之间有什么区别
int[] value = new int[0];

int[] value_next = new int[]{};

5 个答案:

答案 0 :(得分:6)

实际上没有区别。它是java数组声明中的Syntactic sugar

第一种类型声明不那么令人困惑,至少对我而言:)。

注意:我不确定为什么在声明时将长度设为

如果可能的话,请通过https://stackoverflow.com/a/19558179/1927832获得一些优势。

答案 1 :(得分:2)

现在证明(和练习):

创建两个类,每个类包含一个声明。编译它们以获取 .class 文件 在两个创建的文件中的每一个上,执行:

javap -c yourClass

要查看字节码

现在你可以回答你自己的问题了。

答案 2 :(得分:1)

绝对没有区别。

int[] a = new int[0]是首选,因为它显示了创建空数组的意图。

答案 3 :(得分:1)

没有区别,但在第二种情况下,您有多余的[]

我个人更喜欢使用int[] value_next = {}创建一个空数组。

在我看来,int[] value = new int[0];可以在快速阅读时看起来像是在创建一个数组,其中包含一个元素,初始值为0。在凌晨3点的调试会议期间,我非常感谢清晰度。

答案 4 :(得分:0)

不,没有区别。

两者都创建一个包含0个元素的数组。

相关问题