《深入理解java虚拟机》一书中介绍到jvm的内存溢出情况,对理解jvm的自动内存管理机制有一定帮助,下面通过几个实例来进行说明。
java虚拟机的规范描述中,除了程序计数器外,java堆,虚拟机栈,本地方法区等运行时区都会发生outOfMemoryError的可能。
《1》java堆溢出
//eclipse-run configurations-VM arguments-Xms20M -Xmx20M -Xmn10M -XX:+HeapDumpOnOutOfMemoryError
public class HeapOOM { static class OOMObject { } public static void main(String[] args) { List<OOMObject> list=new ArrayList<OOMObject>(); while(true) { list.add(new OOMObject()); } } }