初始化基元数组
我想知道,
初始化基元数组的这两种方法之间到底有什么区别:
int[] arr1 = new int[]{3,2,5,4,1};
int[] arr2 = {3,2,5,4,1};
哪一个是首选?
我想知道,
初始化基元数组的这两种方法之间到底有什么区别:
int[] arr1 = new int[]{3,2,5,4,1};
int[] arr2 = {3,2,5,4,1};
哪一个是首选?
没有,它们产生完全相同的字节码。我认为第二种形式可能在旧版本的Java中不受支持,但那应该是一段时间前的事了。
既然如此,它就变成了一个风格问题,这是一个个人喜好的问题。既然你特别问了,我更喜欢第二个,但同样,这是个人品味的问题。
正如其他人所提到的,它们是等效的,第二个选项不那么冗长。不幸的是,编译器并不总是能够理解第二个选项:
public int[] getNumbers() {
return {1, 2, 3}; //illegal start of expression
}
在这种情况下,您必须使用完整的语法:
public int[] getNumbers() {
return new int[]{1, 2, 3};
}