模型服务连接失败
并发Java
分类
Java JVM
难度
未设置
来源数
1
更新时间
2026/03/29 01:13

答案

思路:描述栈定义,再描述为什么会溢出,再说明一下相关配置参数,OK的话可以给面试官手写是一 个栈溢出的DEMO. 我的答案: 栈是线程私有的,他的生命周期与线程相同,每个方法在执行的时候都会创建一个栈帧,用来存储 局部交量表,操作数栈,动态链接,方法出口等信息.局部交量表又包含基本数据类型,对象引用 类型 如果线程请求的找深度大于虚拟机所允许的最大深度,将抛出STACKOVERFLOWERROR异常,方法递 归调用产生这种结果. 如果LAVA虚拟机栈可以动态扩展,并且扩展的动作已经尝试过,但是无法申请到足够的内存去完成 扩展,或者在新建立线程的时候没有足够的内存去创建对应的虚拟机栈,那么LAVA虚拟机将抛出一 个OUTOFMEMORY 异常.(线程启动过多) HTTPS://BLOG.CSDN.NET/SOY0809 参数-XSS去调整JVM栈的大小

相关题目(5)

元信息

审核状态: active
关联来源: 1

来源面经题(0)

这道题目前没有手动沉淀的面经题来源。

来源(1)

Java八股(JVM).md

knowledge_note
Question 45: 哪些情况会发生栈溢出? Source answer: 思路:描述栈定义,再描述为什么会溢出,再说明一下相关配置参数,OK的话可以给面试官手写是一 个栈溢出的DEMO. 我的答案: 栈是线程私有的,他的生命周期与线程相同,每个方法在执行的时候都会创建一个栈帧,用来存储 局部交量表,操作数栈,动态链接,方法出口等信息.局部交量表又包含基本数据类型,对象引用 类型 如果线程请求的找深度大于虚拟机所允许的最大深度,将抛出STACKOVERFLOWERROR异常,方法递 归调用产生这种结果. 如果LAVA虚拟机栈可以动态扩展,并且扩展的动作已经尝试过,但是无法申请到足够的内存去完成 扩展,或者在新建立线程的时候没有足够的内存去创建对应的虚拟机栈,那么LAVA虚拟机将抛出一 个OUTOFMEMORY 异常.(线程启动过多) HTTPS://BLOG.CSDN.NET/SOY0809 参数-XSS去调整JVM栈的大小 Reviewed answer: 当线程请求的栈深度超过虚拟机允许的最大深度时会发生StackOverflowError,常见原因是无限递归或过深的方法调用。若虚拟机栈支持动态扩展但无法申请足够内存,或线程过多导致无法创建新栈,也可能抛出OOM。