前些日子,有网友问:在JAVA中 int[] a 这样定义的数组和 int a[] 定义的数组有什么区别?
当时没有细看,直接回复说,在JAVA中,两者是一样的,没有区别。
回头仔细看时,还是稍有区别的。
按照正常的JAVA编程规范,先定义类型 然后是变量名结束,由此说来 int[] a 是符合JAVA定义变量规范的(推荐用法);而 int a[] 则可能是为了兼容C++中的变量定义。
所以,来看下面几个数组定义的区别:
int[] a;
int b[]; int[] c []; int[] d,e; int f,g[]; int[] h,i,j[];
这样定义的代码看起来还有有点儿迷惑性的,哪些不是数组?哪些是1维数组?哪些是二维数组?
我们看看《The Java® Language Specification》上关于数组的定义,就能明白了。
书皮封面,可从Oracle官网下载:http://docs.oracle.com/javase/specs/index.html
书中第10章节 Arrays 的 第二小节 10.2 Array Variables中,
由此可见,按照JAVA规范来是能够具有更加友好的代码阅读性的。
以上代码的等价关系:
int[] a; // = int[] a;
int b[]; // = int[] b;
int[] c []; // = int[][] c;
int[] d,e; // = int[] d; int[] e;
int f,g[]; // = int f; int[] g;
int[] h,i,j[]; // = int[]h; int i[]; int[][] j;