float [] x和float x []之间有区别吗?

时间:2013-09-13 21:37:11

标签: java arrays performance multidimensional-array

我最近注意到我可以通过在数组变量名后面的类型 OR 之后放置方括号来声明java中的数组。

  1. float[] x
  2. float x[]
  3. 除了语法之外,这两者之间是否存在差异?

    顺便说一句,我偶然发现float[] x[]实际上正在初始化二维数组 - 至少根据Eclipse而言。这是真的吗?

5 个答案:

答案 0 :(得分:4)

没有区别。两者都在Java中有效。前者对于Java来说更为传统。是的,这是一个二维数组声明,虽然非常奇怪。请写下float[][] x

答案 1 :(得分:3)

如果变量的声明与你发布的一样,那么不,没有区别:

  1. float[] x;
  2. float x[];
  3. 如果在同一行中声明多个变量,您将发现差异:

    1. float[] x, y;
    2. float x[], y;
    3. 在最后一种情况:

      1. xyfloat s。
      2. 的数组
      3. x是一个float的数组,而yfloat
      4. 推荐的代码编写方法:使用1来简化代码可读性。

答案 2 :(得分:2)

float val[] = new float[2];
完全相同 float[] val = new float[2];

来自Java Language Specification

  

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

类似

float[] val[] = new float[2][3]

对于 二维 数组来说是正确的(虽然不寻常)。

答案 3 :(得分:0)

float[] xfloat x[]都会导致创建单维数组引用,float[] x是首选表单。

实际上,

float [] x []会创建一个二维数组引用。

答案 4 :(得分:0)

不,两种语法之间没有区别。您通常会在声明中看到变量上的括号,并在匿名使用该类型时使用该类型的括号。

你发现并不奇怪,因为'float []'是一个有效的类型规范,x []声明了那个类型的数组。