为什么不绘制()make StackOverflowError?

时间:2014-01-15 13:33:19

标签: java stack-overflow

我一直想知道:为什么paint()方法不会生成StackOverflowError? 我知道paint()必须在后台重复运行,但是什么限制它只能以计算机可以处理的速度调用它而不会产生StackOverflowError? 所以它不会重复paint()到使用太多内存的程度?

1 个答案:

答案 0 :(得分:6)

仅使用递归函数

发生堆栈溢出
void paint() {
    // code ...
    paint();
}

堆栈:

-> stack overflow <-
paint()
...
paint()
paint()
paint()
...
main()

但在你的情况下会发生以下情况:

while (true) {
    paint();
}

paint()始终从同一堆栈帧调用