jvm性能调优实战 - 43OOM内存溢出发生的原因及可能发生OOM的内存区域

本文探讨了JVM内存溢出(OOM)的原因,重点关注了内存的三个关键区域:JVM虚拟机栈、堆内存和Metaspace/Metaspace。文章解释了JVM如何执行代码,类加载机制,以及线程如何在虚拟机栈中执行方法。此外,还讨论了局部变量在栈内存中的存储以及对象在堆内存中的创建,从而指出这三个区域可能导致的内存溢出问题。
摘要由CSDN通过智能技术生成

在这里插入图片描述


OOM

先不考虑自己系统外部依赖的缓存、消息队列、数据库等等东西挂掉,就我们自己系统本身而言,最常见的挂掉的原因是什么?

其实就是系统OOM,也就是所谓的内存溢出!

其实说白了,也非常非常的简单,一句话形容,你的JVM内存就这么点,结果你拼命的往里面塞东西,结果内存塞不下了,不就直接溢出了吗?

看看下面的这个图在这里插入图片描述
至于到底JVM是如何放不下对象导致内存溢出的,这个大家不要着急,情况有很多种,我们后面会一步一图一点点给大家分析的

此外我们还会结合一些案例用代码给大家演示出来发生内存溢出的一些场景,最后还会告诉大家平时对线上系统的内存溢出一般怎么来处理和解决。

一旦你的系统代码不停的往JVM内存里塞入大量的东西,JVM实在是放不下之后,JVM就会告诉你,OutOfMemory,内存溢出了,我实在放不下那么多东西了,我就直接瘫痪不能工作了。

通常而言,内存溢出这个问题可能对你的系统是毁灭性的打击,他代表你的JVM内存不足以支撑你的代码的运行

所以一旦发生这个情况,就会导致你的系统直接停止运转,甚至会导致你的JVM进程直接崩溃掉,进程都没

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小小工匠

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值