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

如果线程请求的栈深度大于虚拟机所允许的深度,将抛出StackOverflowError异常。 如果虚拟机在动态扩展栈时无法申请到足够的内存空间,则抛出OutOfMemoryError异常。


1.栈溢出(StackOverflowError) 栈是线程私有的,他的生命周期与线程相同,每个方法在执行的时候都会创建一个栈帧,用来存储局部变量表,操作数栈,动态链接,方法出口灯信息。局部变量表又包含基...
2.堆溢出(OutOfMemoryError:java heap space) heap space表示堆空间,堆中主要存储...
3.永久代溢出(OutOfMemoryError: PermGen space)