考虑在Java中声明数组类型变量的两种方法:
1)语法:dataType[] arrayRefVar;
示例:
double[] myList;
2)语法:dataType arrayRefVar[];
示例:
double myList[];
为什么第一种语法优先于第二种?
答案 0 :(得分:2)
在第一个例子中,所有类型信息都在一个地方 - 变量的类型是" dataType
"的数组;这就是dataType[]
所说的内容。
为什么你会在不同的地方有两个方面的类型信息 - 一个是元素类型名称,一个是变量?
请注意,您可以真正混淆一些事情:
int[] x[]; // Equivalent to int[][] x
和
int foo()[] // Equivalent to int[] foo()
伊克!
另请注意,如果稍后要使用集合类型而不是数组,则数组语法更接近通用语法。例如:
String[] foo
到
List<String> foo
基本上,int foo[]
语法仅包含在Java中,使其看起来更像C和C ++。就个人而言,我认为这是一个错误 - 它现在永远不会从语言中删除,尽管事实上它非常气馁:(
答案 1 :(得分:0)
它们在功能上完全相同,但第一种形式在C或C ++中是不允许的,并且它更容易分辨它是一个数组(在我看来)
int[] a; // <-- not valid in C (or C++)
答案 2 :(得分:0)
没有什么区别,它的写作偏好来自C
和C++
种语言。
查看阵列上的JLS:
[]可能会出现在开头的类型中 声明,或作为特定声明者的一部分 变量,或两者兼而有之。