1. 程式人生 > 其它 >new 陣列_Java陣列

new 陣列_Java陣列

技術標籤:new 陣列陣列“越界”的概念

1.陣列的概念

概念:陣列可以理解成在計算機中的多個連續的儲存空間,裡面可以按順序存放多個

型別相同的資料。

(形參和實參太長,使用不方便,可讀性太差,可以定義一個變數容器,存放多個數據)

ba8a6d65ee3687758cfa0cfcc9047580.png

1) 陣列名 陣列的名字

2) 陣列元素 就是存放在數組裡面的資料

3) 陣列索引 就是數組裡面連續儲存空間的編號,從0開始

4) length :陣列的屬性長度 陣列名.length拿到陣列的長度

2.陣列的基本語法及使用

陣列的使用:陣列連續儲存空間

獲得陣列的基本語法:

資料型別[] 陣列名 = new 資料型別[長度];

比如:int[] arr = new int[10];

獲得陣列的其他語法補充

1. 動態建立之先聲明後賦值

資料型別 [] 陣列變數名;

陣列變數名 = new 資料型別[陣列長度];

2. 靜態建立之複雜寫法

1) 推薦寫法:

a. 宣告的同時賦值

資料型別 [] 陣列變數名 = new 資料型別[] {多個以英文逗號分隔的資料};

b. 先聲明後賦值

資料型別 [] 陣列變數名;

陣列變數名 = new 資料型別[] {多個以英文逗號分隔的資料};

2) 不推薦寫法

a. 宣告的同時賦值

資料型別 陣列變數名 [] = new 資料型別[] {多個以英文逗號分隔的資料};

b. 先聲明後賦值

資料型別 陣列變數名 [];

陣列變數名 = new 資料型別[] {多個以英文逗號分隔的資料};

3. 靜態建立簡寫方式

1) 宣告的同時賦值

資料型別[] 陣列變數名 = {多個以英文逗號分隔的資料};//接下來學習中最常用

2) 先聲明後賦值[編譯器不允許,錯誤寫法]

資料型別[] 陣列變數名;

陣列變數名 = {多個以英文逗號分隔的資料};

對於計算機記憶體儲存空間的使用最重要的就是存值取值

1. 存值

(1) 陣列名[索引位置] = 值;

2. 取值

(1) 陣列名[索引位置]

(2) 陣列遍歷

3.認識陣列的本質

陣列也是一個[資料型別]的本質分析

示例1.一個方法:求兩個整數的和:一個方法傳入,多個數據,用的陣列、

方法的形式參應該是

資料型別 形式引數名

int[] a = new int[5];

int[] 本身就是一個數據型別

4.JVM堆疊圖【引用】

1. 堆:可以理解為凡是new 出來的東西都放在這裡面,堆記憶體可以被虛擬機器動態的分配記憶體大小,無需事先告訴編譯器的資料的大小、生命週期等相關資訊

2. 棧:主要存放一些變數容器名 (例如區域性變數名,還可以存放區域性變數 基本型別 資料值),棧記憶體被要求存放在其中的資料的大小、生命週期必須是已經確定的

3. 圖例

e237272e9a7298930c1bba689dd74fc5.png

陣列引用資料型別,一個數字名,持有一個數字的地址值。

5.陣列的特點

1) 一個數組的資料型別,限定了陣列儲存空間,可以儲存資料的型別

2) 一個數組可以儲存多個元素

3) 一旦陣列物件被建立好,那麼其長度就固定不變了

4) 動態建立好陣列之後,會自動分配預設值,和陣列中的元素型別有關(類似之前成員變數的預設值)

6.陣列的常見問題

1.陣列越界【索引,多了或者少了,不在一個數組的索引範圍】

2.空指標異常

3.如果有返回值,不知道return寫在哪裡

7.陣列的遍歷

通俗一點就是打印出數組裡面所有的值

public static void main(String[] args){
  int[] arr  = {4,23,42,34,23,42,34,42,34,23,4,23,423,4,23,423,42,34};
 
  for(int i = 0;i<=arr.length-1;i++){
   System.out.println(arr[i]);
  }