在Java虚拟机规范中,针对虚
《一线大厂Java面试题解析+后端开发学习笔记+最新架构讲解视频+实战项目源码讲义》
【docs.qq.com/doc/DSmxTbFJ1cmN1R2dB】 完整内容开源分享
拟机栈和本地方法栈描述了两种异常:
-
如果线程请求的栈深度大于虚拟机所允许的最大深度,将抛出StackOverflowError异常。
-
如果虚拟机在扩展栈时无法申请到足够的内存空间,则抛出OutOfMemoryError异常。
这种分类不是很清楚,因为太少的内存或太多的堆栈空间会导致堆栈空间无法继续分配。
堆栈溢出错误是一个简单的条件。堆栈溢出错误是以下简单代码中的堆栈溢出:堆栈溢出错误、堆栈溢出错误、堆栈溢出错误、堆栈溢出错误、堆栈溢出错误、堆栈溢出错误、堆栈溢出错误
public class JavaVMStackSOF {
private int stackLength = 1;
public void stackLeak() {
stackLength++;
stackLeak();
}
public static void main(String[] args) {
JavaVMStackSOF javaVMStackSOF = new JavaVMStackSOF();
try {
javaVMStackSOF.stackLeak();
} catch (Throwable e) {
System.out.println(“Stack length