Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用`{…}进行数组实例化`_Java_Arrays - Fatal编程技术网

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关键字()或数组初始值设定项()

数组创建表达式指定元素类型、嵌套数组的级别数以及至少一个嵌套级别的数组长度。数组的长度作为最终实例变量长度提供


数组初始值设定项创建数组并为其所有组件提供初始值。

这个问题从未出现过(在声明的不同位置初始化数组)。很好