当我试图运行这个程序几次的终值i是11407,11417,11400显示堆栈溢出错误之前等.为什么i每次执行该程序时最终值都不相同?
public class MainRecursive {
static int i=0;
public static void main (String arg[])
{
i++;
System.out.println(i);
main(arg);
}
}
Run Code Online (Sandbox Code Playgroud)
小智 3
System.out.flush();打印后尝试添加。
由于堆栈大小没有改变,每次运行时我都会得到相同的值,但我认为println()在不同时间更新输出之前会被异常中断 - 这取决于控制台、操作系统等并且不能是确定性的。