java.lang.StackOverflowError递归的栈溢出错误
生活随笔
收集整理的這篇文章主要介紹了
java.lang.StackOverflowError递归的栈溢出错误
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
?遞歸在JAVA中是指方法本身調(diào)用自己,以此來解決問題普通循環(huán)不太容易解決的問題。
遞歸能解決一些特定的問題,但相對的也有其缺點。遞歸運行速度較慢,在遞歸調(diào)用過
程中系統(tǒng)為每一層返回點,局部量等提供棧來存儲。因為這個特性,如果在遞歸調(diào)用中,沒有一個
條件能讓遞歸退出調(diào)用自身。那么就會造成棧溢出情況,即java.lang.StackOverflowError,此外,
如果在方法中如果A調(diào)用B,B調(diào)用C,C調(diào)用A,也會出現(xiàn)以上錯誤,要避免這種調(diào)用。以下是遞歸比較
適合情況:
(1)數(shù)據(jù)的定義是按遞歸定義的。(Fibonacci函數(shù))
(2)問題解法按遞歸算法實現(xiàn)。
這類問題雖則本身沒有明顯的遞歸結(jié)構(gòu),但用遞歸求解比迭代求解更簡單,如Hanoi問題。
(3)數(shù)據(jù)的結(jié)構(gòu)形式是按遞歸定義的。
如二叉樹、廣義表等,由于結(jié)構(gòu)本身固有的遞歸特性,則它們的操作可遞歸地描述。
總結(jié)
以上是生活随笔為你收集整理的java.lang.StackOverflowError递归的栈溢出错误的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java min 函数的使用方法_【Py
- 下一篇: jenkins 手动执行_Jenkins