Java 陣列宣告與初始化
阿新 • • 發佈:2018-12-06
引言
學習了好久的java,每次要寫陣列的宣告和初始化程式碼,總是理不清。最近又碰到了一次這種情況。這次拿出《Thinking In Java》好好總結一翻。
陣列宣告
對於陣列的宣告其實都沒多大問題,推薦的寫法是使用 資料型別 + [] + 陣列名稱的方式,因為這種方式可以很清楚的表明這是某一種型別的陣列。例如,宣告一整數型別的陣列。
1 int[] a;
陣列初始化
其實出現問題最多的就是陣列的初始化。陣列的初始化分為三種方式,再遇到初始話的時候,總是會搞不清楚。根據我個人的理解,陣列的初始化操作分為三種方式。
第一種:特殊初始化,不用new關鍵字完成,在陣列宣告的同時完成初始化操作,也被稱其為靜態初始化。主要原因是因為採用這種初始化的方式,陣列的儲存空間的分配是由編譯器完成的。
下面以整數陣列初始化為例,完成一個靜態陣列初始化:
1 int[] a = {1,2,3}; 2 Integer[] b = { 3 new Integer(1), 4 new Integer(2), 5 3 //Autoboxing 6 };
第二種:先使用new關鍵字建立陣列,然後再分別為陣列中的元素賦值,完成初始化操作。(注:如果陣列元素型別為基本資料型別,在完成new 操作之後,陣列中的元素會自動初始化為空值,可以直接使用,但是陣列元素為引用型別,在完成new操作之後,沒有給引用型別賦值,就直接使用陣列中的元素,會產生執行時異常。)
下面還是以整數陣列初始化為例2,完成陣列初始化:
1 int[] a = new int[2]; //需要指定陣列的長度 2 a[0] = 1; 3 a[1] = 2;
第三種:使用new關鍵字建立陣列,同時為陣列中的元素賦值,完成出事化操作。
1 int[] a = new int[]{1,2,3}; //與第二種方法不同,這裡new不需要指定陣列的長度,陣列長度由其後的初始化操作確定 2 3 int[] b = new int[]{ 4 new Integer(1), 5 new Integer(2), 6 3 7 };