在有限递归中是否可能出现Stack OverFlow错误?

时间:2016-01-08 03:24:16

标签: java recursion

我有一个递归方法,我相当肯定是有限的。但是,当我运行它时,我收到堆栈溢出错误。是否有另一种可能的方法来获得我正在做的堆栈溢出或该方法有什么问题?

public static void solve(int row, int column){
    if (row<=8){
        if (column>8){
            solve(row+1, 0);
        }
        if (row<=8 && column<=8 && (Rows[row][column]==0)){
            for (int a = 1; a<=9;a++){
                if (check(row, column, a)==false&&Rows[row][column]!=a){
                    Rows[row][column]=a;
                    break;
                }
            }
        }
        solve(row, column+1);
    }
}

1 个答案:

答案 0 :(得分:2)

JVM中的堆栈大小有限,因此可以通过有限递归获得StackOverflow,甚至不需要任何递归。

您可以使用-Xss选项增加JVM堆栈大小:

java -Xss16M YouMainClass