JAVA中的数组概念

时间:2015-01-04 08:11:55

标签: java

考虑在Java中声明数组类型变量的两种方法:

1)语法:dataType[] arrayRefVar;

示例:

double[] myList;

2)语法:dataType arrayRefVar[];

示例:

double myList[];

为什么第一种语法优先于第二种?

3 个答案:

答案 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)

没有什么区别,它的写作偏好来自CC++种语言。

查看阵列上的JLS:

  

[]可能会出现在开头的类型中   声明,或作为特定声明者的一部分   变量,或两者兼而有之。

相关问题