1. 程式人生 > >Java一維陣列定義和初始化

Java一維陣列定義和初始化

陣列

陣列是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];

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的時候還呼叫了帶參的構造方法,且該構造方法中會對成員變數的值進行賦值