1. 程式人生 > >Java 數組聲明與初始化

Java 數組聲明與初始化

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 數組聲明與初始化