int[] X = {1,2,3};
int[] Y = new int[] {1,2,3}
数组X的内容是否也会存储在堆上?
答案 0 :(得分:4)
唯一的区别是第一个语句只在声明数组变量时有效,而第二个语句可以与声明分开编写:
int[] X;
int[] Y;
X = {1,2,3}; // doesn't work
Y = new int[] {1,2,3}; // works
答案 1 :(得分:0)
这两个陈述在技术上在语法上有所不同,但效果相同。
array initializer可以作为局部变量声明初始值设定项的一部分出现,如:
int[] X = {1,2,3};
以及数组创建表达式,如:
new int[] {1,2,3}
是的,X
将在堆上。 Java中的所有对象都在堆上,因为数组是对象,所有数组都在堆上。
答案 2 :(得分:0)
Java提供了初始化数组的简易性。因此,使用new运算符,您可以直接赋值。像
int[] X={1,2,3};
这里,初始化块中的no.of元素知道数组的大小。
另一种初始化方法是使用new运算符。
int[] y=new int[]{1,2,3};
String变量也使用两种初始化方式。但在Strings中,这两种类型具有不同的含义。