如何解决在递归java方法中,每个方法调用都会导致新的堆栈吗?
| 我知道每个线程都将拥有它自己的堆栈,这是否意味着每个方法也将拥有它自己的线程?解决方法
不,每个方法在当前线程的堆栈中都有自己的堆栈框架。
因此,如果您有两个线程,一个线程调用method1()调用method2(),另一个线程调用methodA()调用methodB()又调用methodC(),您将得到:
Stack 1 Stack2
methodC()
method2() methodB()
method1() methodA()
请注意,尾部递归也有可能,它允许递归调用替换当前的堆栈框架,而不是创建新的堆栈框架。
, 我没有,这也是在递归进行得太深的情况下可能出现StackOverflowError的原因。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。