1. 程式人生 > 實用技巧 >Java基礎4--陣列

Java基礎4--陣列

1 陣列

1.1 什麼是陣列?

陣列就是儲存資料長度固定的容器,儲存多個數據的資料型別要一致。

格式一

資料型別[] 陣列

int[] arr;        
double[] arr;      
char[] arr;

格式二

資料型別 陣列名[]

int arr[];
double arr[];
char arr[];

1.2 陣列初始化

1.2.1 動態初始化

陣列動態初始化就是隻給定陣列的長度,由系統給出預設初始化值

資料型別[] 陣列名 = new 資料型別[陣列長度];
int[] arr = new int[3];
  • 等號左邊:

    • int:陣列的資料型別

    • []:代表這是一個數組

    • arr:代表陣列的名稱

  • 等號右邊:

    • new:為陣列開闢記憶體空間

    • int:陣列的資料型別

    • []:代表這是一個數組

    • 5:代表陣列的長度

1.2.2 靜態初始化

  • 完整版格式

    資料型別[] 陣列名 = new 資料型別[]{元素1,元素2,...};
    
  • 簡化版格式

    資料型別[] 陣列名 = {元素1,元素2,...};
    

程式碼示例:

public class ArrayDemo {
    public static void main(String[] args) {
        //定義陣列
        int[] arr = {1, 2, 3};

        //輸出陣列名
        System.out.println(arr);

        //輸出陣列中的元素
        System.out.println(arr[0]);
        System.out.println(arr[1]);
        System.out.println(arr[2]);
    }
}

1.2 陣列訪問

1.2.1 索引介紹

每一個儲存到陣列的元素,都會自動的擁有一個編號,從0開始。

​這個自動編號稱為陣列索引(index),可以通過陣列的索引訪問到陣列中的元素。
獲取指定下標值:
陣列名[索引];

1.2.2 程式碼示例

public class ArrayDemo {
    public static void main(String[] args) {
        int[] arr = new int[3];

        //輸出陣列名
        System.out.println(arr); //[I@880ec60

        //輸出陣列中的元素
        System.out.println(arr[0]);
        System.out.println(arr[1]);
        System.out.println(arr[2]);
    }
}

1.2.3 常見異常

  • 索引越界異常
    ArrayIndexOutOfBoundsException
    陣列長度為3,獲取下標5的值

  • 空指標異常
    NullPointerException

    ```
    int[] arr = new int[3];
      //把null賦值給陣列
     arr = null;
    ```
    

    arr = null 這行程式碼,意味著變數arr將不會在儲存陣列的記憶體地址,也就不允許再運算元組了,因此執行的時候會丟擲

2 記憶體分配

2.1 什麼是記憶體?

記憶體是計算機中的重要原件,臨時儲存區域,作用是執行程式。

​ 我們編寫的程式是存放在硬碟中的,在硬碟中的程式是不會執行的。

​ 必須放進記憶體中才能執行,執行完畢後會清空記憶體。

​ Java虛擬機器要執行程式,必須要對記憶體進行空間的分配和管理。

2.2 記憶體分配

區域名稱 作用
暫存器 給CPU使用,和我們開發無關。
本地方法棧 JVM在使用作業系統功能的時候使用,和我們開發無關。
方法區 儲存可以執行的class檔案。
堆記憶體 儲存物件或者陣列,new來建立的,都儲存在堆記憶體。
方法棧 方法執行時使用的記憶體,比如main方法執行,進入方法棧中執行。