Java數組的使用文法與C和C++的比較類似,但是它的本質是一個Java類,只是這個類比較特殊,所以很容易被人誤解。
大家知道,Java的資料類型可以分為倆種:基礎資料型別 (Elementary Data Type)和引用資料類型。那麼數組屬於哪種呢。很顯然,數組不會是基礎資料型別 (Elementary Data Type),因為基本類型就只有那8種,那他應該就屬於引用資料類型了,也就是說每一個數組執行個體都是一個對象,這些對象同屬於一個類。
首先,看一看如何使用一個Java數組,大致有以下幾個步驟:
1.聲明數組,使用一個引用類運算元組
2.使用new關鍵字來為數組建立數組所需要的記憶體空間,並且返回一個引用的值,還可以用{}符號萊維數組賦初值。
3.使用數組下標對數組的值進行操作。
範例程式碼如下:
public class Test2 {public static void main(String[] args) {int [] arr=new int[]{1,2,3,4,5};//定義一個int陣列變數String []arr2=new String[3];//定義一個String陣列變數for(int i:arr){System.out.println(i);}for(String i:arr2){System.out.println(i);}}}
以上代碼建立了倆個數組,一個是int型的數組,對資料進行了初始化;另外一個是String型的數組,指定數組的長度為3~
運行結果如下:
12345nullnullNull
倆種類型的數組有一個共同的特點,就是在建立的時候必須知道一個長度。其實,這是因為數組在建立的時候,會動態為這些類型知道數目的成員變數,並且為這些成員變數賦初值。但是,Java不會讓我們像普通類那樣去操作這些成員變數,而是通過[]符號,使用下標來訪問這些資料。另外,java還為每一個數組提供了一個length屬性,用於知道數組的長度。
注意:數組的下標是從0開始的。
那麼,數組的類名是什麼呢。其實,數組的類型與它儲存的資料類型有關,它們的類名可以通過擷取數組的Class類型來擷取,如下代碼用於擷取上例倆個數組的類名:
System.out.println("int arr type name:"+arr.getClass().getName());
System.out.println("String arr2 type name:"+arr2.getClass().getName());
結果如下:
int arr type name:[I
String arr2 type name:[Ljava.lang.String;
可以看出,數組類名總是以左中括弧開頭,然後是不同的標示。例如,int類型的數組則是一個I字元,字串類型的數組則是Ljava.lang.String。通過這些標示,我們就可以知道該數組儲存的是哪種資料類型。
總結:
java的數組本質是一個類,該類還儲存了資料類型的資訊。該類通過成員變數的形式類儲存資料,並且通過[]符號,使用下標來訪問這些資料。在處理基礎資料型別 (Elementary Data Type)(如int)時,數組儲存的是變數的值,如果我們未提供初始值,數組會把這些變數的初始值為0;而處理參考型別時(如String),數組儲存的是資料的引用,如果我們沒有初始化,數組會把變數的初始值為null。