1、功能不一樣
棧內(nèi)存用來存儲局部變量和方法調(diào)用;堆內(nèi)存用來存儲Java中的對象。
2、異常錯誤展現(xiàn)方式不一樣
如果棧內(nèi)存沒有可用的空間存儲方法調(diào)用和局部變量,JVM會拋出java.lang.StackOverFlowError;如果堆內(nèi)存沒有可用的空間存儲生成的對象,JVM會拋出java.lang.OutOfMemoryError。
3、空間大小不一樣
棧的內(nèi)存要小于堆內(nèi)存,使用遞歸棧很快就會充滿,遞歸沒有及時跳出可能發(fā)生StackOverFlowError問題。
總結(jié):
java中堆和棧在功能、異常錯誤展現(xiàn)方式、空間大小等方面不一樣。
聲明:本網(wǎng)頁內(nèi)容旨在傳播知識,若有侵權(quán)等問題請及時與本網(wǎng)聯(lián)系,我們將在第一時間刪除處理。TEL:0731-84117792 E-MAIL:11247931@qq.com