栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

递归与For循环-阶乘,Java

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

递归与For循环-阶乘,Java

因为没有方法调用的开销,所以for循环将更加有效。(作为一般规则,循环几乎总是比递归更有效率)

为了解释为什么您必须深入了解调用方法和调用堆栈时发生的事情。

基本上,当您调用一个方法时,它需要一些空间来使用(例如其局部变量之类的东西),它还需要空间以用于将传入的参数传递给它,并且还需要一个地方来存储它应该在何时返回的地址它完成执行。通过将值“压入”堆栈来动态提供此空间。该堆栈空间将一直被占用,直到该方法返回时才“弹出”。

因此,请考虑这种情况下的递归:每次从自身内部调用该方法时,都会将更多数据压入堆栈,而不会从您所在的方法返回(因此不会释放调用方法所占用的堆栈空间)。随着递归的深入,内存量将增加。

相反,您编写的for循环仅使用一次堆栈帧推送提供的固定内存量。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/496305.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号