Java中两个数组声明之间的区别是什么?

时间:2011-09-01 23:47:35

标签: java arrays

在我的书中,他们一直在改变以下两种方法之间声明数组的方式:

    int array1[] = {1, 2, 3};
    int[] array2 = {1, 2, 3};

我想知道两个括号的位置之间有什么区别,为什么当我把括号放在名字后面时(例如在数组1中),为什么我必须将它初始化为一组值或者一个新的数组,但是在array2中,我可以简单地说“int [] array2;”然后再使用它??

3 个答案:

答案 0 :(得分:7)

它们是相同的,除了你提到的,如果你把括号放在名字后面,你必须初始化它。在名称之前声明它们的一个优点是多数组初始化,如下所示:

int [] myArray1, myArray2;

int myArray1[], myArray2[];

根据documentation的Java方法是将括号放在数组名称之前。

答案 1 :(得分:1)

它们之间没有区别,因为它们声明类型为“int of int”的变量。没有“Java方式”(但首选方式),即使文档数组在变量名称之前用括号声明:

int[] array1;

注意:请注意“声明”“初始化”(或 instanciation

int[] array1;   // declares an array of int named "array1"
                // at this point, "array1" is NOT an array, but null
                // Thus we "declare" a variable that will hold some 
                // data of type int[].

array1 = new int[] {1, 2, 3};   // legacy initialization; set an array of int
                                // with 3 values to "array1". Thus, we "initialize"
                                // the variable with some data of type int[]

因此,

int [] array1;
int array2[];

都声明了两个int[]类型的变量;但是,它们只是数据类型的声明,而不是数组。就像Oscar Gomez所说,现在的区别在于第二种“方式”要求你指定变量是数组类型,而不仅仅是int。

int i[], j;   // i is a data type array of int, while j is only an int
int [] k, l;  // both k and l are of the same type: array of int

答案 2 :(得分:0)

数组由数组创建表达式数组初始化程序创建。前者适用于array2 虽然在这种情况下,提供了数组初始值设定项 ),而后者适用于array1

有关详细信息,请参阅: