Java 调用堆栈的最大深度是多少?

2022-08-31 09:22:52

在获得 StackOverflowError 之前,我需要进入调用堆栈多深?答案平台是否相关?


答案 1

这取决于分配给堆栈的虚拟内存量。

http://www.odi.ch/weblog/posting.php?posting=411

可以使用 VM 参数或构造函数对此进行优化。-XssThread(ThreadGroup, Runnable, String, long)


答案 2

我在我的系统上测试,没有找到任何常量值,有时堆栈溢出发生在8900次调用之后,有时仅在7700之后,随机数。

public class MainClass {

    private static long depth=0L;

    public static void main(String[] args){
        deep(); 
    }

    private static void deep(){
        System.err.println(++depth);
        deep();
    }

}

推荐