java 數組

來自學習java瘋狂講義的筆記

1、數組初始化分爲靜態初始化和動態初始化,靜態初始化有程序員顯示制定每個元素的初始值,由系統決定數組長度。動態初始化只指定數組長度,由系統爲數組元素分配初始值,整形爲0,浮點型爲0.0,字符型爲\u000,布爾型爲false,引用類型爲null.

靜態初始化:

int[] intarr;

intarr=new int[]{1,2,3};

或 int[] intarr={1,2,3,4,5};

動態初始化:

int[] a=new int[5];

*不能同時使用靜態初始化和動態初始化,即不要再初始化數組時既指定數組長度,也給每個數組分配初始值。

2、foreach循環循環遍歷數組

int[] a={1,2,3};

for(int i:a){

System.out.println(i);

}

*foreach 循環迭代數組元素時,並不能改變數組元素的值。

3、數組在內存中的運行機制

1)一旦數組初始化完成之後,數組在內存中所佔的空間將被固定下來,因此數組的長度將不可改變,即使把某個數組的元素全部清空,他所佔的內存依然保留,屬於該數組的長度依然不變。

2)數組是一種引用數據類型,數組引用變量只是一個引用,數組元素和數序變量在內存中十分開放的。如果希望在程序中訪問數組對象本身,則只能通過這個數組的引用變量來訪問它。

   實際的數組對象被存儲在堆內存中,如果引用該數組對象的數組引用變量是局部的,那麼它被存在棧內存中。

4、二維數組

1)二維數組實質上還是一維數組,只是其數組元素也是引用,數組元素裏保存的引用指向一維數組。

2)定義:int[][] a;

  初始化:a=new int[5][];

  這相當於初始化一個一維數組,這個一維數組的長度是5,同樣,因爲這個一維數組的數組元素是引用類型(數組類型),所以系統爲每個數組元素分配初始值null。

3)使用靜態初始化一個二維數組:

String[][] str=new String[][]{new String[3],new String[]{"hello"}};

或String[][] str={new String[3],new String[]{"hello"}};

4)動態初始化和遍歷

int[][] a;

a=new int[3][4];

for(int i=0;i<a.length;i++){

for(int j=0;j<a[i].length;j++)

System.out.println(a[i][j]);

}

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