Java中的深度递归会导致堆栈溢出?

在对函数式语言有一定的经验之后,我开始在Java中更多地使用递归-但是该语言似乎只有约1000个相对较浅的调用堆栈。


有没有办法使调用堆栈更大?就像我可以像在Erlang中那样进行数百万次调用的函数吗?


当我处理Project Euler问题时,我越来越注意到这一点。


谢谢。


拉莫斯之舞
浏览 1822回答 3
3回答

波斯汪

是否使用尾部递归由JVM决定-我不知道它们中是否有尾递归,但是您不应该依赖它。特别是,改变堆栈大小将非常很少是做正确的事,除非你有你需要多少递归级别实际上使用了硬限制,你知道每个会到底有多少堆栈空间占用。很脆弱基本上,您不应使用不是为它构建的语言的无限制递归。恐怕您将不得不使用迭代。是的,有时候可能会有点痛苦:(
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java