两者有什么区别?第一个实际上是否已转换为第二个?
int [] ar = {1,2,3,4};
and
int [] ar = new int[]{1,2,3,4};
答案 0 :(得分:3)
正如其他答案已经指出的那样,
的影响int[] arr = {1, 2, 3, 4};
和
int[] arr = new int[]{1, 2, 3, 4};
完全相同。
在这个答案中,我只会详细说明何时使用哪一个。
第一个显然不太适合打字,所以尽可能使用它。但是,它只能在直接分配给变量时使用。有时,我们想要创建一个数组而不分配变量。这称为匿名数组。在这种情况下,我们需要使用第二种语法。
head({1, 2, 3, 4}); // error
head(new int[]{1, 2, 3, 4}); // ok
return {1, 2, 3, 4}; // error
return new int[]{1, 2, 3, 4}; // ok
new
的存在与否只是语言上的。在C ++中,不像在堆上或堆栈上创建数组。在Java中,任何非基本对象都会进入堆。
答案 1 :(得分:2)
int [] ar = new {1,2,3,4};
无法编译。
如果您的意思是int [] ar = {1,2,3,4};
,那么是 - 它与int [] ar = new int[]{1,2,3,4};
相同。
答案 2 :(得分:2)
int [] ar = new {1,2,3,4};
会给你一个编译错误,我认为你的意思是:
int [] ar = {1,2,3,4};
在这种情况下,答案是肯定的。这是java在声明数组时的简写。