Java中的StackOverflowError是什么?什么时候发生?

Use*_*034 4 java stack-overflow

谁能告诉我Java中的StackOverflowError是什么?

T.J*_*der 16

当太多的数据放在上发生堆栈溢出堆栈,这是一种有限的资源.

这是一个例子:

public class Overflow {
    public static final void main(String[] args) {
        main(args);
    }
}
Run Code Online (Sandbox Code Playgroud)

该函数重复调用自身,没有终止条件.因此,堆栈填满因为每个调用必须在堆栈上推送一个返回地址,但返回地址永远不会从堆栈中弹出,因为函数永远不会返回,它只是不断调用自身.


Jes*_*per 8

StackOverFlowException在Java中没有这样的东西.

但是,有一个名为的类StackOverflowError,文档说:

在发生堆栈溢出时抛出,因为应用程序过于严重.

如果您不知道堆栈是什么,请阅读:调用堆栈

  • @Don:请不要删除部分答案.我已经回滚你的删除. (2认同)