tas*_*ava 2 java stack-overflow
我一直在想:为什么该paint()方法不会生成StackOverflowError?我知道paint()必须在后台重复运行,但是什么限制它只能以计算机可以处理的速度调用它而不会产生StackOverflowError?那么它不会重复paint()到使用太多内存的程度?
仅使用递归函数发生堆栈溢出
void paint() {
// code ...
paint();
}
Run Code Online (Sandbox Code Playgroud)
堆:
-> stack overflow <-
paint()
...
paint()
paint()
paint()
...
main()
Run Code Online (Sandbox Code Playgroud)
但在你的情况下,会发生以下情况:
while (true) {
paint();
}
Run Code Online (Sandbox Code Playgroud)
paint() 始终从同一堆栈帧调用
| 归档时间: |
|
| 查看次数: |
96 次 |
| 最近记录: |