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