无限递归 - 绕过StackOverflowError?

时间:2016-05-29 19:36:23

标签: java recursion stack-overflow

前几天我写了这个(笑话)代码,看看会发生什么,但我得到了一些非常奇怪的结果:

class Foo{
    public static void main(String[] args){
        while(true)
            recur();
    }

    public void recur(){
        while (true){
            try{
                System.out.println("Hi ");
                recur();
            } catch (StackOverflowError e){
                recur();
            }
        }
    }
}

它只是连续打印出“Hi”,没有任何停止指示(我在程序运行一整分钟后终止了程序)。奇怪的是,有时候“Hi”会在一行上多次打印出来(我在一行上计算了117次)。但是,更重要的是,程序继续运行,没有终止。有什么想法吗?

0 个答案:

没有答案