相关疑难解决方法(0)

什么是StackOverflowError?

什么是什么,是StackOverflowError什么导致它,我应该如何处理它们?

stack-overflow memory-leaks exception-handling out-of-memory

420
推荐指数
10
解决办法
58万
查看次数

实际导致Stack Overflow错误的原因是什么?

我到处寻找,找不到可靠的答案.根据文档,Java 在以下情况下抛出java.lang.StackOverflowError错误:

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

但这提出了两个问题:

  • 是否有其他方法可以发生堆栈溢出,而不仅仅是通过递归?
  • StackOverflowError是否在JVM实际溢出堆栈之前或之后发生?

详细说明第二个问题:

当Java抛出StackOverflowError时,你能安全地假设堆栈没有写入堆中吗?如果你在一个抛出堆栈溢出的函数的try/catch中缩小堆栈或堆的大小,你能继续工作吗?这记录在哪里?

答案我不是在寻找:

  • 由于错误的递归而发生StackOverflow.
  • 当堆遇到堆栈时发生StackOverflow.

java stack-overflow jvm

235
推荐指数
3
解决办法
9万
查看次数