25天成為java大神之——第五天:陣列

1:一維陣列

(1)陣列:儲存同一種資料型別的多個元素的集合

每個元素都有編號,從0開始。

最大編號是陣列的長度

(2)陣列的格式:

A:資料型別[] 陣列名;

B:資料型別 陣列名[];

(3)陣列的初始化:

A:動態初始化 只給長度,不給元素

int[] arr = new int[3];

B:靜態初始化 不給長度,給元素

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

簡化版:int[] arr = {1,2,3};

特別要注意的事陣列必須先 初始化才能複製。不能根據賦值自動增加長度

(4)java中的記憶體分配

A:棧 儲存區域性變數

B:堆 new出來的

C:方法區

D:本地方法區

E:暫存器

(5)兩個常見小問題

A:陣列越界

陣列越界是指賦值超過了初始化的陣列範圍

比如 int[] a=new int[5];

取a[6]就越界了,就會有空指標異常丟擲java。lang。ArrayIndexOutOfBoundsException異常

B:空指標異常

空指標異常是指應用了未指向地址的引數

比如定義String str=null;

輸出 b。lenght()就會報錯

(6)陣列常見操作 獲取陣列長度:陣列名。length

A:陣列遍歷

B:獲取最值

C:陣列反轉

D:查表法

E:查詢指定元素第一次出現的索引

2:二維陣列(理解)

(1)二維陣列:元素是一維陣列的陣列。

(2)格式:

A:資料型別[][] 變數名 = new 資料型別[m][n];

B:資料型別[][] 變數名 = new 資料型別[m][];

C:資料型別[][] 變數名 = new 資料型別[][]{{元素。。。},{元素。。。},{元素。。。}};

資料型別[][] 變數名 = {{元素。。。},{元素。。。},{元素。。。}};

(3)常見操作:

A:陣列遍歷

B:求和案例

3:兩個思考題

(1)java引數傳遞問題

基本型別:形式引數的改變不影響實際引數。

引用型別:形式引數的改變直接影響實際引數。

java中只有值傳遞。因為地址值也是一個值。

(2)資料加密問題

25天成為java大神之——第五天:陣列