什么情况下会发生栈内存溢出?
问题描述:
如果线程请求的栈深度大于虚拟机所允许的深度,将抛出StackOverflowError异常。 如果虚拟机在动态扩展栈时无法申请到足够的内存空间,则抛出OutOfMemoryError异常。
答
什么情况下会发生堆内存溢出,栈内存溢出,结合实例说明_LJHSkyWalker的博客-CSDN博客_栈内存溢出
一、 栈溢出(StackOverflowError)栈是线程私有的,他的生命周期与线程相同,每个方法在执行的时候都会创建一个栈帧,用来存储局部变量表,操作数栈,动态链接,方法出口灯信息。局部变量表又包含基本数据类型,对象引用类型(局部变量表编译器完成,运行期间不会变化)所以我们可以理解为栈溢出就是方法执行是创建的栈帧超过了栈的深度。那么最有可能的就是方法递归调用产生这种结果。publ...
https://blog.csdn.net/qq_31615049/article/details/82980799
1.栈溢出(StackOverflowError) 栈是线程私有的,他的生命周期与线程相同,每个方法在执行的时候都会创建一个栈帧,用来存储局部变量表,操作数栈,动态链接,方法出口灯信息。局部变量表又包含基...
2.堆溢出(OutOfMemoryError:java heap space) heap space表示堆空间,堆中主要存储...
3.永久代溢出(OutOfMemoryError: PermGen space)