我在Eclipse中运行了一个用Java编写的程序。对于非常大的输入数据,该程序具有非常深的递归层次。对于较小的输入数据,程序可以正常运行,但是当给出大的输入数据时,我收到以下错误:
Exception in thread "main" java.lang.StackOverflowError
是否可以通过增加Java堆栈大小来解决这个问题?如果可以,那我该如何在Eclipse中操作?
更新:
@Jon Skeet
该代码递归地遍历语法树以构建数据结构。例如,代码将使用语法树中的节点执行某些工作,并在节点的两个子节点上调用自身,将它们的结果组合以给出整个树的结果。
递归的总深度取决于语法树的大小,但是当递归调用数量达到1000个时,代码似乎会失败(如果没有更大的堆栈)。
另外,我很确定代码不会因为bug而失败,因为它对于小输入有效。