我想知道java.lang.StackOverflowError的根本原因是什么。我知道当方法被递归调用无限次时就会发生这种情况,但是异常的实际原因是什么,默认的堆栈大小是多少?
发布于 2014-02-27 19:53:56
根本原因是:堆栈大小在运行时是固定的(),一旦程序运行,VM就不提供调整它的方法。但是递归深度不是固定的,在很多情况下它依赖于输入数据。这就是为什么递归深度有时会导致不是所有堆栈帧都适合堆栈的原因。
https://stackoverflow.com/questions/22067414
复制相似问题