我在java中有一个递归函数。当前我通过生成异常在递归函数的某个点上突破了异常。 问题是我正在堆溢出。无论如何,一旦我使用递归从递归函数中断,就清除堆中未使用的变量。
public void recursivefun(int k)
{
int m=1;
System.out.println("m is "+m);
if (k>100)
{
throw new Exception();
}
else
{
recursivefun(k+1);
}
System.out.println("after recursion");
}
我每次从1开始k。而且我不能使用return,因为我现在不想回到递归。我想打破完整的递归。
答案 0 :(得分:0)
M和K是本地变量,M未使用。那么,你确定存在堆问题吗?你能发布K值吗? 尝试使用return退出。
答案 1 :(得分:0)
如果你使用类似代码的东西,它不应该是堆溢出,如果条件已被设置为一个大整数,它可能是一个堆栈溢出,因为在递归函数堆栈中,而不是堆,问题或代码不够明确,
锁定并不错