Java一維陣列定義和初始化
阿新 • • 發佈:2018-12-14
陣列
陣列是Java中的一種資料型別,是一組資料的集合,陣列中的每個成員稱為元素。Java中的陣列是類型別(引用型別),Java的同一個陣列中,只能存放相同型別的資料元素。
一維陣列
- 一維陣列的定義方式
一維陣列有以下兩種定義方式,推薦使用第一種定義方式
<資料型別>[] <陣列名稱>;
<資料型別> <陣列名稱>[];
在沒有初始化時,定義陣列是不能指定長度!也就是說陣列不能使用。int[4] array;//錯誤
其中<資料型別>決定這該陣列中元素型別(陣列名稱[0]所表示的元素型別)。所以<資料型別>不僅可以代表基本資料型別,還可以代表類型別(引用型別)。 Java程式在定義陣列時並不為陣列元素分配記憶體空間,只為<陣列名>提供一個引用空間(實際上就是指標)。 - 用new關鍵字動態初始化建立一維陣列物件(前提是<陣列名稱已經被定義為元素型別>)
<陣列名稱> = new <陣列元素型別>[整型常量];
在這個過程中,使用new關鍵字來產生陣列的例項物件。
這樣例項化以後,就可以用==<陣列名稱>.length得到陣列的長度屬性。
[整形常量]是陣列元素的長度,下標由0開始到[整形常量-1。]在堆空間==中申請一個大小為陣列元素型別(定義陣列時的資料型別)乘以整形常量(陣列元素佔用記憶體空間乘以陣列元素個數)的記憶體空間。並且對堆空間空間中的所有元素預設初始化(對整形變數置0、浮點變數置0.0、boolean型別變數置false、並對類型別的變數置null(字串變數置null))。
這裡以如下程式碼為例
int[] array[4] = new int[4];
array的型別是一個指向型別為int的堆空間的指標 array的值是堆空間陣列元素首地址的地址值。 array陣列的四個元素值均為0
- 一維陣列初始化
一般定義時直接初始化。
未使用new關鍵字靜態初始化(其中包括了定義過程)建議使用第一種。
<資料型別>[] <陣列名稱> = {<陣列元素資料型別的值>, <陣列元素資料型別的值>, ……};
<資料型別> <陣列名稱>[] = {<陣列元素資料型別的值>, <陣列元素資料型別的值>, ……};
Java編譯程式會將初始化中{}內的資料個數作為陣列的元素個數。
int[] a = new int[3];
int[] b =a;
這裡的陣列b定義後初始化為a陣列所指向的空間,也代表了陣列a的length屬性。b可以引用並改變a的陣列元素。
new的三次賦初值 當在new的時候還呼叫了帶參的構造方法,且該構造方法中會對成員變數的值進行賦值