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