前几天我写了这个(笑话)代码,看看会发生什么,但我得到了一些非常奇怪的结果:
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次)。但是,更重要的是,程序继续运行,没有终止。有什么想法吗?