上一篇文章我們看到基本類型數(shù)據(jù)是通過棧內(nèi)存管理的,而引用類型數(shù)據(jù)是通過堆棧二段式內(nèi)存管理的。那么二段式內(nèi)存管理有什么好處呢?下面就讓小弟為大家淺析一下,希望各位大蝦能夠幫助指正。
    首先,引用類型包括類,接口,數(shù)組三種,而這些類型數(shù)據(jù)的大小都是很難確定的,因?yàn)樵陬愔杏袑傩院头椒?,具體實(shí)現(xiàn)多少屬性和多少方法要根據(jù)具體的實(shí)際情況而定,因此類無法確定其占用內(nèi)存大??;接口更是如此,每一個(gè)接口實(shí)現(xiàn)類都不一樣,也無法確定其大?。粩?shù)組有動(dòng)態(tài)數(shù)組,同樣無法確定大小。那么無法確定其占用內(nèi)存大小的時(shí)候,用棧內(nèi)存來管理就顯得力不從心了,這個(gè)時(shí)候就想到了堆棧二段式管理,在棧內(nèi)存中只存儲(chǔ)對(duì)象的句柄,也就是引用地址;而堆內(nèi)存中存儲(chǔ)它的屬性和方法。這樣一來,只需要如果想調(diào)用這個(gè)對(duì)象的屬性或者方法,只需先要找到該對(duì)象句柄就可以了。而且當(dāng)該對(duì)象不再使用的時(shí)候,垃圾回收器就會(huì)把它回收,既節(jié)省空間又十分方便管理,并且在內(nèi)存中管理的處理速度是十分塊的,僅次于寄存器中的處理速度。
下面我們總結(jié)一下二段式堆棧內(nèi)存管理優(yōu)勢:
1.二段式內(nèi)存管理處理數(shù)據(jù)的速度十分快,在內(nèi)存中的處理速度是僅次于寄存器中的處理速度的。
2.二段式內(nèi)存管理便于引用類型數(shù)據(jù)的管理,無論是是對(duì)象的初始化、對(duì)象的調(diào)用還是對(duì)象內(nèi)存的回收,都顯得十分的清晰和有條理,尤其是當(dāng)對(duì)象不再使用時(shí),垃圾回收器會(huì)自動(dòng)不定時(shí)的選擇時(shí)機(jī)對(duì)該垃圾內(nèi)存進(jìn)行回收,并且不會(huì)出現(xiàn)回收錯(cuò)內(nèi)存的錯(cuò)誤,十分的方便和有條理。
這就是我總結(jié)的二段式堆棧內(nèi)存管理優(yōu)勢。