Java:int 数组与vs数组

可能重复:
int []数组和int数组[]之间的区别

有没有区别

int[] array = new int[10]; 

 int array[] = new int[10]; 

两者都有效,结果完全一样。 哪一个更快或更好? 有没有推荐一个的风格指南?

两者是等价的。 看看下面的内容:

 int[] array; // is equivalent to int array[]; 
 int var, array[]; // is equivalent to int var; int[] array; 
 int[] array1, array2[]; // is equivalent to int[] array1; int[][] array2; 
 public static int[] getArray() { // .. } // is equivalent to public static int getArray()[] { // .. } 

来自JLS http://docs.oracle.com/javase/specs/jls/se5.0/html/arrays.html#10.2

下面是不创build数组的数组variables的声明示例:

 int[ ] ai; // array of int short[ ][ ] as; // array of array of short Object[ ] ao, // array of Object otherAo; // array of Object Collection<?>[ ] ca; // array of Collection of unknown type short s, // scalar short aas[ ][ ]; // array of array of short 

下面是一些创build数组对象的数组variables声明的例子:

 Exception ae[ ] = new Exception[3]; Object aao[ ][ ] = new Exception[2][3]; int[ ] factorial = { 1, 1, 2, 6, 24, 120, 720, 5040 }; char ac[ ] = { 'n', 'o', 't', ' ', 'a', ' ', 'S', 't', 'r', 'i', 'n', 'g' }; String[ ] aas = { "array", "of", "String", }; 

[]可以作为声明开头的types的一部分出现,也可以作为特定variables的声明的一部分或两者 ,如下例所示:

 byte[ ] rowvector, colvector, matrix[ ]; 

这个声明等同于:

 byte rowvector[ ], colvector[ ], matrix[ ][ ]; 

它们基本上都是一样的,没有什么差别,但推荐的是第一种情况,因为它更具可读性。

 int[] array = new int[10]; 

JLS

[]可以作为声明开头的types的一部分出现,也可以作为特定variables声明的一部分,或者两者兼而有之。

两者都是一样的。 我通常使用int[] array = new int[10]; ,因为typesint[]的更好的(连续的)可读性。

这两个声明没有区别,两者的性能都是一样的。

不,没有区别。 但我更喜欢使用int[] array因为它更具可读性。

几乎没有区别。

在这两个例子中,你都将一个new int[10]赋给一个引用variables。

以任何方式分配给参考variables在性能上都是相同的。

 int[] array = new int[10]; 

上述符号被认为是可读性的最佳实践。

干杯