递归出现栈溢出stackoverflow的问题及解决

递归出现栈溢出stackoverflow

递归是个不断回调方法的过程,使方法一遍遍的压入栈中,递归次数多了,栈满了也就溢出了。默认的栈大小是1m。我也没有很好的解决办法,就加大栈内存吧!

我这里就说下eclipse中测试类怎么改栈内存大小。

右键测试类–》properties–》

递归出现栈溢出stackoverflow的问题及解决_第1张图片

递归出现栈溢出stackoverflow的问题及解决_第2张图片

这样就行了

递归调用中栈溢出原因

那么过多的递归调用为什么会引起栈溢出呢?

事实上,函数调用的参数是通过栈空间来传递的,在调用过程中会占用线程的栈资源。

而递归调用,只有走到最后的结束点后函数才能依次退出,而未到达最后的结束点之前,占用的栈空间一直没有释放,如果递归调用次数过多,就可能导致占用的栈资源超过线程的最大值,从而导致栈溢出,导致程序的异常退出。

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

你可能感兴趣的:(递归出现栈溢出stackoverflow的问题及解决)