Java 數組聲明與初始化
阿新 • • 發佈:2018-12-06
img 產生 pre 基本數據類型 src toolbar ron 圖片 數據類型
引言
學習了好久的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 };
Java 數組聲明與初始化