java 數組詳解
1、數組和集合的差別
數組是定長的,隻能存入相同類型元素的一種容器,它既可以存入引用資料類型元素,也可以存入基本資料類型元素。
而集合是可以自動增長容量的,可以存入不同類型元素的另外一種容器,集合中隻能存入引用資料類型的元素,不能存入基本資料類型的元素。
正因為如此,在JDK1.5的時候,加入了泛型機制和自動裝箱/拆箱機制;之前需要人工手動裝箱/拆箱。
2、數組本身是一種引用資料類型
2.1但我們發現在Eclipse裡無法通過“Ctrl+滑鼠左鍵”的方式打開一個數組的源碼。
2.2不過,我們卻又發現可以通過反射機制得到一個數組的Class對象,并進一步擷取這個Class對象的name屬性的值,示例代碼如下:

1 package test;
2
3 public class Test {
4 public static void main(String[] args) {
5 int[] array = new int[10];
6 System.out.println(array.getClass());
7 System.out.println(array.getClass().getName());
8 System.out.println();
9 System.out.println("1".getClass());
10 System.out.println("1".getClass().getName());
11 }
12 }
View Code

1 class [I
2 [I
3
4 class java.lang.String
5 java.lang.String
運作結果
由此,我們知道,在本質上數組和其它的引用資料類型并沒有差別,隻不過是在具體的實作方式上有所不同而已。留待以後擴充......
2.3是以,數組中的每個元素相當于數組對象的成員變量。我們知道,數組元素的預設值為0、0L、0.0、0.0F、null等,而這和成員變量的預設值完全相同。
3、數組元素如果是引用類型,那麼在數組中儲存的就是一個一個的引用變量,而不是對象本身;也隻能儲存引用變量,否則數組元素的引用變量就沒有存在的意義了。
4、數組的聲明
int[] array = new int[10];
int[] array = new int[]{10};
int[10] array;
第三種寫法在java中是錯誤的;而在C++中可以的,表示在Stack記憶體塊中建立一個容量為10的數組。
5、數組有一個 length 屬性,它儲存着數組的長度。