棧內(nèi)存:
????存儲(chǔ)的都是局部變量,而且變量所屬作用域一旦結(jié)束,該局部變量自動(dòng)釋放。
堆內(nèi)存:
? ? 存儲(chǔ)是數(shù)組和對(duì)象(數(shù)組也是對(duì)象的一直)凡是new建立的對(duì)象,建立在堆中。
????特點(diǎn):
? ? ? ? ? ? 1.每一個(gè)實(shí)體都有首地址值。
? ? ? ? ? ? 2.堆內(nèi)存中的每一個(gè)變量都有默認(rèn)的初始化數(shù)值,根據(jù)類型的不同而變化。(如:整數(shù)為0,小數(shù)為0.0)。
? ? ? ? ? ? 3.垃圾回收機(jī)制。
? ? ?輸入 int[] arr=new int[3];時(shí),會(huì)在堆中建立內(nèi)存,然后將首地址0x0045賦值給arr,此時(shí),若輸入 arr=null;申請(qǐng)的數(shù)組空間并不釋放,被視為系統(tǒng)運(yùn)行產(chǎn)生垃圾,與c++不同的是,c++程序產(chǎn)生的垃圾需要程序員手動(dòng)運(yùn)行析構(gòu)函數(shù)進(jìn)行回收,而JAVA通過垃圾回收機(jī)制,不定時(shí)自動(dòng)回收。

?int[] arr=new int[3];
? ??
? ??