T.J*_*der 15
没有,它们产生完全相同的字节码.我认为可能是旧版本的Java不支持第二种形式,但那可能还有一段时间.
在这种情况下,它成为一种风格问题,这是个人喜好的问题.既然你特别问过,我更喜欢第二种,但同样,这是个人品味的问题.
正如其他人所提到的,它们是等价的,第二种选择则不那么冗长.不幸的是,编译器并不总是能够理解第二个选项:
public int[] getNumbers() {
return {1, 2, 3}; //illegal start of expression
}
Run Code Online (Sandbox Code Playgroud)
在这种情况下,您必须使用完整语法:
public int[] getNumbers() {
return new int[]{1, 2, 3};
}
Run Code Online (Sandbox Code Playgroud)