什么情况下会发生栈内存溢出?
2022-10-20 本文已影响0人
糯米团子123
因为栈是线程私有的,它的生命周期与线程相同,每个方法在执行的时候都会创建一个栈帧,用于存储局部变量、操作数栈、动态链接、方法出口等信息,如果线程请求的栈深度大于虚拟机所允许的最大深度,将抛出StackOverflowError栈内存溢出异常。一般在方法递归调用时容易造成栈内存溢出。
因为栈是线程私有的,它的生命周期与线程相同,每个方法在执行的时候都会创建一个栈帧,用于存储局部变量、操作数栈、动态链接、方法出口等信息,如果线程请求的栈深度大于虚拟机所允许的最大深度,将抛出StackOverflowError栈内存溢出异常。一般在方法递归调用时容易造成栈内存溢出。