Java内存溢出之栈溢出-StackOverflowError

    技术2022-07-11  86

    1. 产生的条件

        1.1 线程请求的栈深度大于虚拟机允许的最大深度时,报StackOverflowError;

        1.2虚拟机在扩展栈深度时,无法申请到足够的内存空间时,报OutOfMemoryError。

    2. 示例

    @Test void stackOverflowTest(){ getName("hello"); } private String getName(String name){ return getName(name); }

    显示

    java.lang.StackOverflowError     at  ...// 省略详细的报错信息

    原因: 由于递归调用,栈深度已大于允许的最大深度。

    Processed: 0.012, SQL: 9