一維數組
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預設初始化,也可以用數組常量初始化
1.動态初始化:數組定義與為數組配置設定空間和指派的操作分開進行;
2.靜态初始化:在定義數字的同時就為數組元素配置設定空間并指派;
3.預設初始化:數組是引用類型,它的元素相當于類的成員變量,是以數組配置設定空間後,每個元素也被按照成員變量的規則被隐士初始化。
執行個體:
TestD.java(動态)
程式代碼
public class TestD
{
public static void main(String args[]) {
int a[] ;
a = new int[3] ;
a[0] = 0 ;
a[1] = 1 ;
a[2] = 2 ;
Date days[] ;
days = new Date[3] ;
days[0] = new Date(2008,4,5) ;
days[1] = new Date(2008,2,31) ;
days[2] = new Date(2008,4,4) ;
}
}
class Date
int year,month,day ;
Date(int year ,int month ,int day) {
this.year = year ;
this.month = month ;
this.day = day ;
TestS.java(靜态):
public class TestS
int a[] = {0,1,2} ;
Time times [] = {new Time(19,42,42),new Time(1,23,54),new Time(5,3,2)} ;
class Time
int hour,min,sec ;
Time(int hour ,int min ,int sec) {
this.hour = hour ;
this.min = min ;
this.sec = sec ;
TestDefault.java(預設):
public class TestDefault
int a [] = new int [5] ;
System.out.println("" + a[3]) ;
}