JVM 内存主要分为堆(Heap)、栈(Stack)、方法区(Method Area)等几部分。当内存严重不足时,会抛出 java.lang.OutOfMemoryError,常见类型包括:
- Java heap space:堆内存不足,最常见的 OOM
- GC overhead limit exceeded:GC 花费大量时间但回收极少内存
- Metaspace / PermGen space:元空间/永久代耗尽,通常因加载 class 过多
- Unable to create new native thread:无法创建新线程,通常与操作系统限制或线程数过多有关
- Direct buffer memory:堆外直接内存不足
- Requested array size exceeds VM limit:请求数组尺寸超过 JVM 限制
每种 OOM 都指向不同的排查方向,是排障的重要线索。




