一维数组

一维数组的声明方式:
type var[] 或 type[] var;
例如:
int a[];
int[] a1;
double b[];
Mydate[] c; //对象数组

一维数组初始化
动态初始化:数组声明且为数组元素分配空间与赋值的操作分开进行
int[] arr = new int[3];
arr[0] = 3;
arr[1] = 9;
arr[2] = 8;
静态初始化:在定义数组的同时就为数组元素分配空间并赋值。
int a[] = new int[]{ 3, 9, 8};
int[] a = {3,9,8};

***数组

格式1(动态初始化):int[][] arr = new int[3][2];

格式2(动态初始化):int[][] arr = new int[3][];
二维数组中有3个一维数组。
每个一维数组都是默认初始化值null (注意:区别于格式1)
可以对这个三个一维数组分别进行初始化
arr[0] = new int[3]; arr[1] = new int[1]; arr[2] = new int[2];
注:
int[][]arr = new int[][3]; //非法

格式3(静态初始化):int[][] arr = new int[][]{{3,8,2},{2,7},{9,0,1,6}};

注意特殊写法情况:int[] x,y[]; x是一维数组,y是二维数组。
Java中***数组不必都是规则矩阵形式


声明:int[] x,y[]; 以下选项允许通过编译的是:
a ) x[0] = y; //no, x[0]是一个数,y是一个二维数组

b) y[0] = x; //yes, y[0]就是一维数组,x是一维数组

c) y[0][0] = x;//no, y[0][0] 是一个数字,x是一维数组

d) x[0][0] = y;//no, x[0][0] 不存在,x是一维数组,没有第二维

e) y[0][0] = x[0];//yes, y[0][0] 是一个数字, x[0]是一个数

f) x = y; //no, x是一维数组,y是一个二维数组
一维数组:int[] x 或者int x[]
二维数组:int[][] y 或者 int[] y[] 或者 int y[][]