亚洲精品久久久久久第一页-人妻少妇精彩视品一区二区三区-91国产自拍免费视频-免费一级a在线播放视频正片-少妇天天日天天射天天爽-国产大屁股喷水视频在线观看-操美女骚穴抽插性爱视频-亚洲 欧美 中文字幕 丝袜-成人免费无码片在线观看

棧溢出

java遞歸改為循環(huán)后為什么不會(huì)導(dǎo)致棧內(nèi)存溢出?我們知道 , 在編程中如果想讓某個(gè)業(yè)務(wù)重復(fù)執(zhí)行 , 一般有兩種實(shí)現(xiàn)方式 , 分別是:遞歸和循環(huán) 。在實(shí)際編碼過(guò)程中 , 我們并不建議使用遞歸 , 反而是建議使用循環(huán) , 這是為什么呢?遞歸不當(dāng)會(huì)導(dǎo)致內(nèi)存溢出其實(shí)不單單是Java , 任何一款編程語(yǔ)言 , 如果遞歸寫(xiě)法不對(duì) , 那就可能導(dǎo)致內(nèi)存溢出!學(xué)過(guò)Java的朋友肯定或多或少都聽(tīng)說(shuō)和了解過(guò)棧內(nèi)存和堆內(nèi)存 , 程序在運(yùn)行時(shí) , 電腦操作系統(tǒng)會(huì)給每個(gè)進(jìn)程都分配有堆內(nèi)存、棧內(nèi)存 , 所分配的堆棧內(nèi)存都是有上限的 , 一旦超過(guò)了這個(gè)上限就會(huì)導(dǎo)致內(nèi)存溢出現(xiàn)象 。為什么遞歸操作容易導(dǎo)致內(nèi)存溢出呢?原因主要有以下幾點(diǎn):遞歸方法體內(nèi) , 如果終止遞歸的條件寫(xiě)錯(cuò)了 , 那可能會(huì)導(dǎo)致無(wú)限遞歸 , 最終導(dǎo)致內(nèi)存溢出;即使遞歸方法及退出遞歸條件都是正常的 , 但若遞歸深度過(guò)深(遞歸次數(shù)過(guò)多) , 也會(huì)導(dǎo)致棧內(nèi)存溢出!因?yàn)闂5某鋈胍?guī)則是先入后出(先入棧的最后再出來(lái)) , 如果遞歸次數(shù)過(guò)多就會(huì)導(dǎo)致只入棧不出棧 , 最終棧內(nèi)存溢出 。遞歸改循環(huán)可以降低內(nèi)存溢出的可能注意 , 遞歸寫(xiě)法改成循環(huán)寫(xiě)法可以降低內(nèi)存溢出的風(fēng)險(xiǎn) , 但這不是絕對(duì)的 , 如果循環(huán)寫(xiě)成了死循環(huán)一樣會(huì)導(dǎo)致內(nèi)存溢出 。遞歸寫(xiě)法改成循環(huán)寫(xiě)法的好處是 , 不會(huì)在短時(shí)間內(nèi)出現(xiàn)棧的只入不出現(xiàn)象 , 所以可以規(guī)避棧內(nèi)存溢出現(xiàn)象 。rr遞歸每進(jìn)入一次方法 , 會(huì)將上個(gè)方法的數(shù)據(jù)壓入棧中以便將來(lái)恢復(fù)繼續(xù)執(zhí)行 。循環(huán)每次執(zhí)行的時(shí)候 , 臨時(shí)變量都失效了 , 只有少量的全局變量 。你的這個(gè)問(wèn)題的原因是因?yàn)檫f歸次數(shù)太多 , 導(dǎo)致棧內(nèi)存耗盡 。


    以上關(guān)于本文的內(nèi)容,僅作參考!溫馨提示:如遇健康、疾病相關(guān)的問(wèn)題,請(qǐng)您及時(shí)就醫(yī)或請(qǐng)專(zhuān)業(yè)人士給予相關(guān)指導(dǎo)!

    「愛(ài)刨根生活網(wǎng)」www.malaban59.cn小編還為您精選了以下內(nèi)容,希望對(duì)您有所幫助: