1.1 數組初始化
1.1.1 java數組是靜態的
java數組被初始化之后,該數組所占的內存空間、數組長度都是不可變的。
java程序中的數組必須經過初始化才可使用。
數組的初始化有兩種方式:
1) 靜態初始化:初始化時由程序員顯示指定每個數組元素的初始值,由系統決定數組長度。
2) 動態初始化:初始化時程序員只指定數組長度,由系統為數組元素分配初始值。
*不要同時使用靜態初始化和動態初始化方式。
java的數組變量是一種引用類型的變量,數組變量并不是數組本身,它只是指向對內存中的數組對象。
/**
javaScript這種動態語言的數組長度是可以動態改變的。
**/
1.1.2 數組一定要初始化嗎
數組對象一定要初始化,但對于數組變量來說,它并不需要進行所謂的初始化,只要讓數組變量指向一個有效的數組對象,程序即可正常使用該數組變量。
1.1.3 基本類型數組的初始化
程序直接先為數組分配內存空間,再將數組元素的值存入對應內存里。
所有局部變量都是放在桟內存里保存的,不管其是基本類型的變量,還是引用類型的變量,都是存儲在各自的方法棧內存中的;但引用類型的變量所引用的對象(包括數組、普通的java對象)則總是存儲在堆內存中。
引用變量本質上只是一個指針,只要程序通過引用變量訪問屬性?;蛘咄ㄟ^引用變量來調用方法。該引用變量就會由它所引用的對象代替。
1.1.4 引用類型數組的初始化
引用類型數組的數組元素依然是引用類型的,因此數組元素里儲存的還是引用,它指向另一塊內存,這塊內存里存儲了該引用變量所引起的對象(包括數組和java對象)
1.2 使用數組
java語言不允許直接訪問堆內存中的數據,因此無法直接訪問堆內存中的數組對象,只用通過數組引用變量來訪問數組。
*java語言避免直接訪問堆內存中的數據可以保證程序更加健壯,如果程序直接訪問并修改堆內存中的數據,可能會破壞內存中的數據完整性,從而導致程序Crash。
1.2.1 數組元素就是變量
當一個數組初始化完成后,就相當于定義了多個類型相同的變量。
1.2.2 沒有多維數組
所謂多維數組,其實就是數組元素依然是數組的一位數組。
新聞熱點
疑難解答