java數組,
數組概念:
在電腦中分配多個連續的儲存空間
使用儲存空間本質上是使用值。
定義數組的文法:
獲得連續儲存空間的方式:
動態定義:定義的同時賦值:
資料類型[] 數組名 = new 資料類型[長度]
先定義後賦值:
資料類型[] 數組名;
數組名 = new 資料類型[長度];
靜態定義:複雜下寫法:
定義的同時賦值:
資料類型[] 數組名 = new 資料類型[]{值,值,........};
先定義後賦值:
資料類型[] 數組名;
數組名 = new 資料類型[]{值,值,........};
簡寫方式:
定義的同時賦值:(常用)
資料類型[] 數組名 = {值,值,........};
先定義後賦值:
文法不允許
認識數組:
定義一個數組:int[] arr = new int[6];
int[]:資料類型:int類型的數組,類型!
arr:數組名:變數:數組是引用資料類型,存的是地址!
6:是數組長度
數組每個儲存空間裡面儲存的值:值:元素..
存值文法:
數組名[索引值]=值;
取值文法:
數組名[索引值];
注意:
數組名:本質上也是一個變數,存的是地址值
資料類型[]:資料類型為數群組類型,表示對應資料類型的數群組類型 (當為動態定義時 int的預設值是0 String的預設值是null)
靜態定義的長度根據值的個數確定
特點:
1.索引值是從0開始的,最大索引值,為長度減1
2.資料類型,限定了數組儲存空間,可以儲存放值的類型
3.連續儲存空間,會根據資料類型,分配預設值
引用資料類型的預設值是null,基礎資料型別 (Elementary Data Type)的預設值是0.
4.數組一旦定義好了,長度不變
堆棧分析:JVM記憶體配置圖:
棧:儲存是變數。數組名和地址
堆:凡是new出來都在裡面
作用:分析引用資料類型......學習的類,會經常用過堆棧分析
數組的常見問題:
1.數組越界:當取值或查值索引的大小大於或者等於數組的長度時
2.null 指標異常int[] arr = null; arr.length相當於null.length,其他資料類型也會出現
3.return不知道如何寫傳回值
二維數組(瞭解):
一個數組中儲存的是一個一維數組:三維,四維數組類似
二維數組定義的文法:
動態定義:資料類型[][] arr = new 資料類型[長度1][長度2];
長度1:二維數組中,儲存一維數組的個數.
長度2:二維數組中一維數組的長度
靜態定義:數群組類型[][]arr ={{1,2,3},{4,5,6},{7,8,9}};
值傳遞值引用:
值傳遞:形式參數類型是基礎資料型別 (Elementary Data Type)
值引用:形式參數類型是引用資料類型
基本資料來說:傳遞是值,方法調用時,實際參數把它的值傳遞給對應的形式參數,形式參數只是用實際參數的值初始化自己的儲存單元內容。
引用資料來說:傳遞的是對值的引用!,傳遞的是地址值。方法調用是,實際參數是數組,這時實際參數與形式參數指向同一個地址,在方法執行中,對形式參數的操作實際上就是對實際參數的操作