// 聲明(兩種等價寫法)
int[] arr; // 推薦:類型後置,語義清晰
int arr2[]; // C 風格,不推薦
// 建立:new 類型[長度]
arr = new int[5]; // 長度不可變,預設值 0
// 聲明並建立
int[] numbers = new int[10];
int[] a = new int[3]; // [0, 0, 0]
Date[] dates = new Date[3]; // [null, null, null]
int[] a = {1, 2, 3}; // 類型推斷
String[] names = new String[]{"A", "B"}; // 顯式 new
| 元素類型 | 預設值 |
|---|---|
| byte/short/int/long | 0 |
| float/double | 0.0 |
| char | '\u0000' |
| boolean | false |
| 引用類型 | null |
int[][] matrix = new int[3][4]; // 3 行 4 列
matrix[0][0] = 1;
int[][] jagged = new int[3][];
jagged[0] = new int[2];
jagged[1] = new int[5];
jagged[2] = new int[1];
arr.length:長度屬性(非方法)Arrays.toString(arr):輸出內容而非地址Arrays.sort(arr):原地排序Arrays.copyOf(arr, newLen):擴容/截斷System.arraycopy():高效複製int[] arr = new int[3] 在堆記憶體分配連續空間:
棧: arr ──────► 堆: [0][0][0]
index: 0 1 2
多維陣列實為「陣列的陣列」,每行獨立分配:
int[][] m = new int[2][3];
棧: m ► 堆: [行0地址][行1地址]
│ │
▼ ▼
[0,0,0] [0,0,0]
List<T> 替代陣列,除非效能極度敏感或與原生 API 交互Arrays.copyOf 建立新陣列CopyOnWriteArrayList 或加鎖Java 陣列是固定長度、同類型元素的連續記憶體結構。掌握三種初始化模式、多維陣列佈局、Arrays 工具類用法,是處理基礎數據結構的核心技能。