情况一、堆内存溢出
一般的排查方式可以通过设置-XX: +HeapDumpOnOutOfMemoryError在发生异常时dump出当前的内存转储快照来分析,分析可以使用Eclipse Memory Analyzer(MAT)来分析
情况二、方法区(运行时常量池)和元空间溢出
String对象
情况三、直接内存溢出
常见的比如在NIO中可以使用native函数直接分配堆外内存就容易导致OOM的问题。
情况四、栈内存溢出
如果线程请求的栈深度大于虚拟机所允许的深度,将抛出StackOverflowError异常
如果虚拟机栈可以动态扩展,并且扩展时无法申请到足够的内存,抛出OutOfMemoryError异常
内存溢出的原因和解决办法? 一直执行正常的定时任务突然不执行了,可能是哪些原因导致的?如何判断以及解决?
最新推荐文章于 2025-02-28 23:50:57 发布