Java陣列及其在記憶體中的分配
阿新 • • 發佈:2018-11-12
1.一維陣列
- 陣列概念:陣列是儲存同一種資料型別多個元素的集合。也可以看成是一個容器。它既可以儲存基本資料型別,也可以儲存引用資料型別(後面介紹)。
- 定義格式1: 資料型別[] 陣列名;
格式2: 資料型別 陣列名[]; - 陣列的初始化動態初始化
陣列的初始化:陣列必須先初始化,然後才能使用,就是為陣列中的陣列元素分配記憶體空間,併為每個陣列元素賦值
初始化分類:
(1)動態初始化:只指定長度,由系統給出初始化值;
(2)靜態初始化:給出初始化值,由系統決定長度。
注意:這兩種方式只能用一種,不能進行動靜結合。
動態初始化格式:
資料型別[] 陣列名 = new 資料型別[陣列長度];
陣列長度其實就是陣列中元素的個數。2.二維陣列
- 格式1:資料型別[][] 變數名 = new 資料型別[m][n];
m表示這個二維陣列有多少個一維陣列,n表示每一個一維陣列的元素個數。
以下格式也可以表示二維陣列(不推薦使用)
a.資料型別 陣列名[][] = new 資料型別[m] [n];
b.資料型別[] 陣列名[] = new 資料型別[m] [n];
格式2:資料型別[] [] 變數名 = new 資料型別[m] [];
格式3:資料型別[] [] 變數名 = new 資料型別[] []{{元素···},{元素···}....}3.陣列在記憶體中的分配
- 棧:存放區域性變數
區域性變數:在方法定義中或者方法宣告上的變數。 - 堆:存放的是所用new出來的東西
特點:(1)每一個new出來的東西都會為其分配一個地址值;
(2)每一個變數都有一個預設的值
byte,short,int,long--0
float,double---0.0
char--‘\u0000’
boolean--false
引用資料型別--null
(3)使用完畢就變成了垃圾,等待垃圾回收器對其回收。 - 方法區
- 本地方法區(和系統有關)
- 暫存器(CPU使用)