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