测试环境JDK1.8
设置堆的大小,并且不断创建对象,最终内存溢出
import java.util.ArrayList;
import java.util.List;
/**
* Vm args: -Xms20m -Xmx20m -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());
}
}
}
执行结果:
java.lang.OutOfMemoryError: Java heap space
Dumping heap to java_pid12172.hprof ...
Heap dump file created [32621471 bytes in 0.559 secs]
HeapDumpOnOutOfMemoryError
:当堆内存空间溢出时输出堆的内存快照。