什么情况下会发生栈内存溢出?
因为栈是线程私有的,它的生命周期与线程相同,每个方法在执行的时候都会创建一个栈帧,用来存储局部变量表,操作数栈,动态链接,方法出口等信息,如果线程所请求的栈深度大于虚拟机所允许的最大深度,将抛出 StackOverflowError 栈内存溢出异常,一般在方法递归调用时会发生栈内存溢出。可以通过 JVM 参数 -Xss 来调整栈内存的大小。...
·
因为栈是线程私有的,它的生命周期与线程相同,每个方法在执行的时候都会创建一个栈帧,用来存储局部变量表,操作数栈,动态链接,方法出口等信息,如果线程所请求的栈深度大于虚拟机所允许的最大深度,将抛出 StackOverflowError 栈内存溢出异常,一般在方法递归调用时会发生栈内存溢出。
可以通过 JVM 参数 -Xss 来调整栈内存的大小。
更多推荐
已为社区贡献10条内容
所有评论(0)