我最近一直在思考定义数组的两种方式之间的区别:
int[]数组 int[]数组
有区别吗?
我最近一直在思考定义数组的两种方式之间的区别:
int[]数组 int[]数组
有区别吗?
当前回答
两者同样有效。但是不鼓励使用int[]形式,根据编码约定,int[]形式是首选。请参阅官方Java数组教程:
类似地,你可以声明其他类型的数组: byte [] anArrayOfBytes; [] anArrayOfShorts短; 长[]anArrayOfLongs; [] anArrayOfFloats浮动; 双[]anArrayOfDoubles; 布尔[]anArrayOfBooleans; char [] anArrayOfChars; String [] anArrayOfStrings; 你也可以把方括号放在数组的名字后面: 浮动anArrayOfFloats [];//不鼓励使用此表单 然而,惯例不鼓励这种形式;括号标识数组类型,应该与类型名称一起出现。
注意最后一段。
我建议阅读官方的Sun/Oracle教程,而不是一些第三方的教程。否则,你可能最终会学到不好的做法。
其他回答
这两种类型的声明在功能上没有区别。两者都声明数组为int。
但是int[] a将类型信息保存在一起,更详细,所以我更喜欢它。
Java语言规范说:
The [] may appear as part of the type at the beginning of the declaration,
or as part of the declarator for a particular variable, or both, as in this
example:
byte[] rowvector, colvector, matrix[];
This declaration is equivalent to:
byte rowvector[], colvector[], matrix[][];
因此,它们将产生完全相同的字节代码。
在声明单个数组引用时,它们之间没有太大区别。所以下面两个声明是一样的。
int a[]; // comfortable to programmers who migrated from C/C++
int[] a; // standard java notation
当声明多个数组引用时,我们可以找到它们之间的区别。下面两句话的意思是一样的。事实上,这取决于程序员遵循哪一个。但是建议使用标准的Java表示法。
int a[],b[],c[]; // three array references
int[] a,b,c; // three array references
它是从java所基于的C语言中借来的一种替代形式。
有趣的是,在java中有三种方法来定义一个有效的main方法:
public static void main(String[] args) public static void main(字符串args[]) public static void mainargs)
没有真正的区别;然而,
double[] items = new double[10];
首选,因为它清楚地表明类型是数组。