初始化數組

Java 數組聲明與初始化
引言

  學習了好久的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 };
複製代碼

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章