Java 數組完全指南:聲明、初始化、默認值與遍歷
1. 數組聲明兩種語法
// 推薦:類型[] 變量名
int[] ages;
String[] names;
// 不推薦:類型 變量名[]
int ages[]; // C 風格,易混淆
2. 四種初始化方式
| 方式 | 代碼示例 | 適用場景 |
| 動態初始化(指定長度) | int[] a = new int[5]; | 長度已知,內容稍後賦值 |
| 分步動態初始化 | int[] a; a = new int[5]; | 聲明與創建分離 |
| 靜態初始化(指定內容) | int[] a = {1,2,3,4,5}; | 內容已知 |
| 分步靜態初始化 | int[] a; a = new int[]{1,2,3,4}; | 匿名數組、作為方法參數傳遞 |
3. 八大基本類型默認值
int/short/byte/long → 0
float/double → 0.0
char → '\u0000' (空字符,打印無可見字符)
boolean → false
引用類型 → null
4. 遍歷與賦值範例
int[] arr = new int[5];
for (int i = 0; i < arr.length; i++) {
arr[i] = i;
System.out.println("arr[" + i + "] = " + arr[i]);
}
// 輸出 0~4
5. 進階特性
- 長度不可變:創建後
length 固定,需擴容請用 Arrays.copyOf 或 ArrayList。
- 多維數組:
int[][] matrix = new int[3][4]; 本質是「數組的數組」,第二維長度可不一致(鋸齒數組)。
- foreach 遍歷:
for (int v : arr) { ... } 僅讀遍歷,無索引。
- 工具類:
Arrays.sort/copyOf/toString/binarySearch 等靜態方法極大簡化操作。
6. 內存圖解
棧內存 堆內存
ages ──────────────► [0][1][2][3][4] (int[] 對象)
地址值: 0x7f...
引用變量 ages 存棧,數組對象存堆