我确信这个问题已经被问到,只是写了标题来找到它,但令我惊讶的是它没有。我正在研究一个问题并提出这个问题。我试过这个:
int[] x = new int[1];
int y[] = new int[1];
x=y;
y=x;
并且编译器没有给我一个错误。那么这两个声明之间有什么区别吗?
答案 0 :(得分:12)
语义没有区别。两种语法都是一样的。一些摘自JLS §10.2:
[]可能会出现在开头的类型中 声明,或作为特定变量的声明者的一部分, 或两者,如本例所示:
byte[] rowvector, colvector, matrix[];
此声明相当于:
byte rowvector[], colvector[], matrix[][];
但是,正如Voo在下面的注释中所述,在单个语句中声明多个数组时,可能会对这些声明产生一些棘手的混淆。
答案 1 :(得分:7)
没有区别。
从C转换更容易,只是语法糖。在Java中int[] x
是首选(和推荐)表示法。
答案 2 :(得分:1)
没有,这只是一个品味问题。有些人喜欢把它放在聚合类型旁边(因为觉得它是类型的一部分),其他人更喜欢把它放在变量名旁边(因为它更接近访问语法)。