数组初始化的差异

在查看源文件时,我看到了两种数组初始化方法。 我想知道它们之间是否存在差异

int[] value = new int[0]; 

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

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

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

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

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

现在certificate(和练习):

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

 javap -c yourClass 

要查看字节码

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

没有区别,尽管在第二种情况下你有冗余[]

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

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

绝对没有区别。

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

不,没有区别。

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