java陣列宣告及初始化
一維陣列
1) int[] a; //宣告,沒有初始化
2) int[] a=new int[5]; //初始化為預設值,int型為0
3) int[] a={1,2,3,4,5}; //初始化為給定值
4) int[] a=new int[]{1,2,3,4,5}; //同(3)
int[] a=new int[5]{1,2,3,4,5}; //錯誤,如果提供了陣列初始化操作,則不能定義維表示式
5) int[] a;
a=new int[5]; //正確,同(2)一樣
int[] a;
a={1,2,3,4,5}; //錯誤,陣列常量只能在初始化操作中使用,如(3)
6) int a[];
a[0]=1; //錯誤,因為陣列沒有初始化,不能賦值
a[1]=2;
二維陣列
1) int[][] a; //宣告,沒有初始化
2) int[][] a=new int[2][3]; //初始化為預設值,int型為0
3) int[][] a={{1,2},{2,3},{3,4}}; //初始化為給定值
int[][] a={{1,2},{2,3},{3,4,5}}; //沒有錯,陣列空間不是連續分配的,所以不要求每一維的大小相同
4) int[][] a=new int[2][];
a[0]=new int[3]; //a[0]其實就是一個數組
a[1]=new int[4]; //每一維的大小可以不一樣;
5) int[][] a=new int[][]{{1,2},{2,3},{3,4,5}}; //同(3)
int[] a=new int[5]{{1,2},{2,3},{3,4,5}}; //錯誤,如果提供了陣列初始化操作,則不能定義維表示式
int[][] a=new int[2][];
a[0]={1,2,3,4,5}; //錯誤,陣列常量只能在初始化操作中使用
6) int[][] a=new int[2][];
a[0][1]=1; //錯誤,第二維沒有初始化,不能賦值,java.lang.NullPointerException異常
總結: 1.二維就是陣列的陣列,裡面的陣列大小不要求一樣
2.不管一維還是二維,在使用前(賦值,訪問)必須初始化,可以用new預設初始化,也可以用陣列常量初始化
2.靜態初始化:在定義數字的同時就為陣列元素分配空間並賦值;
3.預設初始化:陣列是引用型別,它的元素相當於類的成員變數,因此陣列分配空間後,每個元素也被按照成員變數的規則被隱士初始化。