Java 使用`{…}进行数组实例化`
正在寻找以下方面的验证: 以下两项之间是否有差异Java 使用`{…}进行数组实例化`,java,arrays,Java,Arrays,正在寻找以下方面的验证: 以下两项之间是否有差异 int [] arr = new int[]{1, 2, 3}; int [] arr2 = {1, 2, 3}; ? 对我来说——没有。实际上无论如何{1,2,3}实例化并初始化它。所以——在它之前调用new() 蒂亚 不,你给出的例子没有区别。但是,使用newint[]可以将声明和初始化分开,如下所示: int[] arr; ... arr = new int[] { 1, 2, 3 }; 而arr={1,2,3}。所示的两个示例没
int [] arr = new int[]{1, 2, 3};
int [] arr2 = {1, 2, 3};
?
对我来说——没有。实际上无论如何<代码>{1,2,3}实例化并初始化它。所以——在它之前调用new
()
蒂亚 不,你给出的例子没有区别。但是,使用
newint[]
可以将声明和初始化分开,如下所示:
int[] arr;
...
arr = new int[] { 1, 2, 3 };
而
arr={1,2,3}不允许使用代码>。所示的两个示例没有任何区别,它们是等效的。但是第一个符号是必需的,例如,如果我们有一个方法m()
作为参数接收,比如说int[]
,那么实例化数组的唯一方法是:
m(new int[]{1, 2, 3});
因为这行不通:
m({1, 2, 3});
为什么会这样?语言设计者将其定义为类似的,可能是为了避免在解析代码时出现歧义。在给定的示例中没有区别
通常,数组可以由数组创建表达式创建,例如使用new关键字()或数组初始值设定项()
数组创建表达式指定元素类型、嵌套数组的级别数以及至少一个嵌套级别的数组长度。数组的长度作为最终实例变量长度提供
数组初始值设定项创建数组并为其所有组件提供初始值。这个问题从未出现过(在声明的不同位置初始化数组)。很好