陣列是程式語言中常見的一種資料結構,可以儲存多個資料,每個陣列元素存放一個資料,通常可以透過陣列元素的 索引來訪問陣列元素,包括賦值,取值,同時,java語言的陣列具有其特有的特徵。
陣列也是一種型別。Java中的陣列要求所有的陣列元素具有相同的資料型別。因此在一個陣列中,陣列元素的型別是
唯一的,即一個陣列只能儲存一種資料型別的陣列。
Java的陣列即可以儲存基本型別的資料,也可以儲存引用型別的資料,只要陣列元素的型別統一即可。
陣列也是一種資料型別,它本身是一種引用型別,例如int是一個基本型別,但int[]就是一種引用型別了。
由於java語言物件導向的特徵,類與類之間支援繼承關係,所以陣列的陣列元素之間可以是父子關係,
但是該陣列的資料型別仍然是唯一的,指向陣列元素的最高父類,例如有一個水果陣列,要求每個元素是水果,但它陣列 元素可以是蘋果,也可以是香蕉,這是他們都繼承了fruit類,因此陣列元素的型別還是唯一的
陣列的定義
Java支援兩種語法格式定義陣列:
type[] arrayName; //推薦這種方式,語義明確,可讀性強
type arryName[]; //早期使用,不推薦
陣列是一種引用型別的變數,因此使用它定義變數時,僅僅定義了一個引用變數(也就是定義了一個空指標),
還未指向任何有效的記憶體,因此定義陣列時不能指定陣列的長度,也不能被使用。
陣列的初始化
Java語言中陣列必須先初始化才能被使用。所謂初始化,就是為陣列的陣列元素分配記憶體空間,併為每個陣列元素
賦初始值。
陣列的初始化有兩種方式:
靜態初始化
語法格式是:
arrayName=new type[]{element1,element2,element3,...};
//簡化格式如下
arrayName={element1,element2,element3,...};
靜態初始化時,顯式指定的資料型別必須與new關鍵字後面的type型別相同,或者是其子類型別。
動態初始化
動態初始化只指定陣列長度,由系統為每個陣列元素賦初始值,動態初始化語法格式如下:
arrayName=new type[length];
執行動態初始化時,程式設計師只需指定陣列的長度,幾位每個陣列元素分配所需的記憶體空間,系統負責為這些陣列元素分配初始值。指定型別的規則如下:
-
陣列元素型別是基本型別的整數型別(byte,short,int,long),則指定初始值0;
-
陣列元素型別是基本型別的浮點型別(float,double),則指定初始值0.0;
-
陣列元素型別是基本型別的字元型別(char),則賦初始值'\u0000';
-
陣列元素型別是基本型別的布林型別(boolean),則賦初始值false;
-
陣列元素型別是引用型別(類,介面,陣列),則賦初始值null;