数组初始化的差异
在查看源文件时,我看到了两种数组初始化方法。 我想知道它们之间是否存在差异
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元素的数组。