我对Java很新,并且想知道两者之间有什么区别。对于这个例子,我使用了数组:
class testpile {
public static void main(String[] args)
{
int[] a = {1,2,3,4,5,6}; //First array
int[] b = new int[5]; //Second Array
b[0] = 7;
b[1] = 8;
b[2] = 9;
b[3] = 10;
b[4] = 11;
print(a);
print(b);
}
public static void print(int[] a) {
for (int i = 0; i < a.length; i++)
System.out.print(a[i] + " ");
System.out.println();
}
}
据我所知,使用“new”会创建一个独特的对象,但使用一个对象有什么好处?
答案 0 :(得分:3)
在你的例子中,两者之间没有真正的区别。第一个主要是后者的“语法糖”。在这两种情况下,数组都在堆上分配。
答案 1 :(得分:2)
这两个代码都创建了一个大小为5/6的int数组
在第一种情况下,数组在创建时用vale初始化
在第二种情况下,值后面分配
这就是差异
答案 2 :(得分:1)
在这个例子中,这两个没有区别。
In the first case the array is initialized at the time of creation
In second case the value is assigned latter whenever you want...
但在这两种情况下,它都会在m / m堆中......
答案 3 :(得分:0)
据我所知,使用“new”会创建一个独特的对象,但使用一个对象有什么好处?
两个构造完全相同(但使用不同的数据):创建一个数组并用数据填充它。特别是,这两个数组都是“唯一对象”。
如果在编译时不知道元素的大小和初始值,则使用“less literal”。
答案 4 :(得分:0)
int[] a = {1,2,3,4,5,6}; //First array
int[] b = new int[5]; //Second Array
它们只是创建数组的两种不同方式。这里没有涉及任何OOP。
当您事先知道值时,第一个更好,否则第二个更好。
答案 5 :(得分:0)
第一个语句称为数组initialization
,其中创建了六个int变量并分配了每个变量。在第二个语句中,new
关键字创建5个初始值为零的int变量。
使用new
关键字,您可以在需要时实例化数组。
int []a=new int[5];
for(int i:a)
System.out.println(i);
a=new int[]{11,22,33};
for(int i:a)
System.out.println(i);
答案 6 :(得分:0)
我认为结果是一样的。
但是当您使用“new”子句创建数组时,您应该指定数组的指定长度。
e.g int[] b = new int[**5**];
在此示例中,您还可以为b [5]指定值。不应该产生编译错误。但是错误应该在运行时发生。
关于另一种方法,不需要指定数组的长度。它取决于数组的元素数。