首页
找靠谱产品
找解决方案
找靠谱公司
找案例
找对的人
专家智库
悬赏任务
SAAS
ToB门户
了解全球最新的ToB事件
论坛
潜水/灌水快乐,沉淀知识,认识更多同行。
ToB圈子
加入IT圈,遇到更多同好之人。
微博
Follow
记录
Doing
博客
Blog
文库
业界最专业的IT文库,上传资料也可以赚钱
下载
分享
Share
排行榜
Ranklist
相册
Album
应用中心
qidao123.com ToB IT社区-企服评测·应用市场
»
论坛
›
虚拟化.超融合.云计算
›
公有云
›
SAAS
›
StackOverFlowError 和 OutOfMemoryError 的区别
返回列表
发新帖
StackOverFlowError 和 OutOfMemoryError 的区别
[复制链接]
发表于 2025-12-29 18:32:31
|
显示全部楼层
|
阅读模式
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要
登录
才可以下载或查看,没有账号?
立即注册
×
StackOverflowError
和
OutOfMemoryError
都是
JVM
抛出的严峻错误,接下来我们简朴看一下他们的区别。
StackOverFlowError:
栈内存不敷深(线程调用
栈深度
超出限定)。
OutOfMemoryError:
目的内存地域不敷大(堆、方法区等共享内存地域
容量耗尽
,无法为新对象分配富足空间)。
关于
JVM
的构成部门,各人可以看下这篇博文:
JVM的构成部门
。
一、StackOverFlowError:栈溢出
1、界说
当
单个线程的方法调用栈深度超出 JVM 答应的最大值
时,假造机栈无法再创建新的栈帧,触发此错误。
2、缘故原由
方法调用链过长(如
无穷递归、深层递归
);
单个
栈帧过大
(如方法内界说了超大的局部变量数组)。
3、场景
最典范:
无停止条件的递归调用
(方法反复调用自身,栈帧连续叠加)。
public class StackOverFlowTest {
// 递归调用,无终止条件
public static void recursiveCall() {
recursiveCall(); // 方法自身调用,栈帧不断入栈
}
public static void main(String[] args) {
recursiveCall();
// 运行结果:Exception in thread "main" java.lang.StackOverflowError
}
}
复制代码
深层
嵌套
调用(如 A 调用 B,B 调用 C,… 嵌套 10000+ 层)。
二、OutOfMemoryError(OOM):内存不敷
1、界说
当
某块共享内存地域(堆、元空间等)容量耗尽,且 GC 无法接纳富足内存
时,JVM 无法为新对象分配空间,触发此错误。
2、缘故原由
内存走漏
(无用对象被 GC Root 引用,无法接纳,连续占用内存);
内存分配
过小
(如堆内存 -Xmx 设置过小,无法满意业务对象创建需求);
超大对象
直接超出内存限定(如创建 new byte[1024*1024*1024],超出堆最大容量)。
内存走漏
可参考此博文
Java 哪些环境会导致内存走漏
。
3、场景
堆内存 OOM:
创建大量对象且无法被 GC 接纳(如静态聚集持有对象)。
元空间 OOM:
动态天生大量类(如 Spring / CGLIB 动态署理、频仍加载类文件),元空间(存储类信息)耗尽。
栈内存 OOM
(与 StackOverFlowError 不一样):创建大量线程(每个线程占用独立栈内存),总栈内存超出物理内存限定(不是单个线程栈深度,而是线程数目过多)。
一样平常来说,
StackOverflowError
的错误日志会包罗
java.lang.StackOverflowError + 方法调用栈(at XXX.XXX.method(...))
;
OutOfMemoryError
的错误日志会有
Java heap space、Metaspace、Direct buffer memory 等标注
,这些信息便于我们直接定位。
StackOverflowError
像是
一条单行道上的车排得太长
,堵死了(栈帧太多)。
OutOfMemoryError
像是
一个停车场停满了车,再也没有空位
(堆空间不敷)。
当服务出现
StackOverflowError
大概
OutOfMemoryError
时,服务会处于
不稳固
状态,以致会自动关闭,此时,我们需实时排查缘故原由。
同为万里江湖客,共见三生风月身。-- 烟沙九洲
回复
使用道具
举报
返回列表
浏览过的版块
开源技术
物联网
SQL-Server
运维.售后
数据仓库与分析
网络安全
汕尾海湾
+ 我要发帖
登录后关闭弹窗
登录参与点评抽奖 加入IT实名职场社区
去登录
微信订阅号
微信服务号
微信客服(加群)
H5
小程序
快速回复
返回顶部
返回列表