對於 Java 數組的初始化,有以下兩種方式:
靜態初始化:初始化時由程序員顯式指定每個數組元素的初始值,由系統決定數組長度,如:
//只是指定初始值,並沒有指定數組的長度,但是系統為自動決定該數組的長度為4
String[] computers = {"Dell", "Lenovo", "Apple", "Acer"}; //①
//只是指定初始值,並沒有指定數組的長度,但是系統為自動決定該數組的長度為3
String[] names = new String[]{"多啦A夢", "大雄", "靜香"}; //②
動態初始化:初始化時由程序員顯示的指定數組的長度,由系統為數據每個元素分配初始值,如:
//只是指定了數組的長度,並沒有顯示的為數組指定初始值,但是系統會默認給數組數組元素分配初始值為null String[] cars = new String[4]; //③
因為 Java 數組變量是引用類型的變量,所以上述幾行初始化語句執行后,三個數組在內存中的分配情況如下圖所示:

由上圖可知,靜態初始化方式,程序員雖然沒有指定數組長度,但是系統已經自動幫我們給分配了,而動態初始化方式,程序員雖然沒有顯示的指定初始化值,但是因為 Java 數組是引用類型的變量,所以系統也為每個元素分配了初始化值 null ,當然不同類型的初始化值也是不一樣的,假設是基本類型int類型,那么為系統分配的初始化值也是對應的默認值0。
