Java中存在StackOverflowError是什么意思?
java.lang.StackOverflowError: null
答案 0 :(得分:4)
根据Java API Documentations for the StackOverflowError
class,当发生堆栈溢出因为应用程序过于冗长时,会抛出此错误“。
答案 1 :(得分:2)
通常意味着存在递归函数,其中结束条件永远不会发生。它运行,填充堆栈,直到你得到StackOverflowError。
答案 2 :(得分:2)
这意味着您已将太多帧压入Java解释器堆栈。 JVM可以处理深度很深的嵌套函数,但是迟早你需要在沙子中划出这条线并说:“如果你把东西嵌得比这更深,你的程序可能会行为不端”。你越过那条线。
查看您是否正在使用任何递归函数调用,然后在它们的循环等效项中重写它们(如果需要)。不必要的递归函数是引发堆栈溢出异常的90%原因。另外,请记住,Java还没有(还)优化尾端递归(这是其他环境避免堆栈溢出/失控堆栈增长的方式)。
答案 3 :(得分:1)
这意味着堆栈(系统跟踪已执行内容的方式)已经溢出(尝试放入的内容比允许的多)。这经常意味着你有一个无法控制地调用自己的递归操作。