一、JVM的内存区域是怎么划分的?
二、OOM可能会发生在那些区域?
OOM是指JVM的内存不足
-
堆内存
如果在堆中没有内存完成对象实例的分配,并且堆无法再扩展时,将抛出OutOfMemoryError异常,抛出的错误信息是“java.lang.OutOfMemoryError:Java heap space”
现在的JVM可以通过-Xmx和-Xms控制堆的大小,发生在堆上的OOM可能是存在内存泄漏或者堆大小分配不合理 -
元空间
随着Metaspace元数据区的引入,方法区的OOM错误信息也变成了“java.lang.OutOfMemoryError:Metaspace”。