在查看源文件时,我看到了两种数组初始化方法。我想知道
之间有什么区别int[] value = new int[0];
和
int[] value_next = new int[]{};
答案 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个元素的数组。