Java陣列初始化
阿新 • • 發佈:2019-01-10
1.Java 陣列初始化的兩種方法:
靜態初始化: 程式設計師在初始化陣列時為陣列每個元素賦值;
動態初始化: 陣列初始化時,程式設計師只指定陣列的長度,由系統為每個元素賦初值。
public class ArrayInit { public static void main(String[] args) { //靜態初始化陣列:方法一 String cats[] = new String[] { "Tom","Sam","Mimi" }; //靜態初始化陣列:方法二 String dogs[] = {"Jimmy","Gougou","Doggy"}; //動態初始化資料 String books[] = new String[2]; books[0] = "Thinking in Java"; books[1] = "Effective Java"; System.out.println(cats.length); System.out.println(dogs.length); System.out.println(books.length); } }
Java陣列是一種引用資料型別。陣列變數並不是陣列本身,而是指向堆記憶體中存放的陣列物件。因此,可以改變一個數組變數所引用的陣列。看下面這段程式碼:
public class ArrayInit { public static void main(String[] args) { //靜態初始化陣列:方法一 String cats[] = new String[] { "Tom","Sam","Mimi" }; //靜態初始化陣列:方法二 String dogs[] = {"Jimmy","Gougou","Doggy"}; //動態初始化資料 String books[] = new String[2]; books[0] = "Thinking in Java"; books[1] = "Effective Java"; cats = dogs; books = dogs; printArray(cats); printArray(dogs); printArray(books); } private static void printArray(String[] arr) { for(int i=0; i < arr.length; i++) { System.out.println(arr[i]); } } }
2.陣列是否必須初始化
對於這個問題,關鍵在於要弄清楚陣列變數和陣列物件的差別。陣列變數是存放在棧記憶體中的,陣列物件是存放在堆記憶體中的。陣列變數只是一個引用變數,他能夠指向實際的陣列物件。
所謂的陣列初始化並非對陣列變數初始化,而是對陣列物件進行初始化。