什么情况下会发生栈内存溢出?

因为栈是线程私有的,它的生命周期与线程相同,每个方法在执行的时候都会创建一个栈帧,用来存储局部变量表,操作数栈,动态链接,方法出口等信息,如果线程所请求的栈深度大于虚拟机所允许的最大深度,将抛出 StackOverflowError 栈内存溢出异常,一般在方法递归调用时会发生栈内存溢出。

可以通过 JVM 参数 -Xss 来调整栈内存的大小。

猜你喜欢

转载自blog.csdn.net/dd2016124/article/details/115057064