Java 陣列初始化比 C/C++ 更安全,透過自動初始化與邊界檢查避免常見錯誤。本文系統性介紹陣列宣告、建立、指派與初始化的各種模式。
int[] a1 = {1,2,3,4,5}; // 靜態初始化
int[] a2; // 僅宣告參考
a2 = a1; // 參考指派(非複製內容)
int[] a3 = new int[20]; // 動態建立基本型別陣列
Integer[] a4 = new Integer[20]; // 物件陣列:參考陣列
基本型別陣列自動初始化:數值為 0、char 為 '\u0000'、boolean 為 false。物件陣列元素預設為 null,需顯式 new 實例化。
// Java 1.1 語法:匿名陣列建立
Integer[] b = new Integer[] { new Integer(1), new Integer(2) };
利用 Object[] 陣列實現類 C 的變長參數:
static void f(Object[] x) { /* ... */ }
f(new Object[] { new Integer(47), new Float(3.14), "string" });
length 為唯讀屬性,非方法理解陣列初始化細節,能避免 NullPointerException 等常見運行時錯誤。