java堆溢出演示-OutOfMemoryError

jvm 参数

-Xms20m -Xmx20m  -XX:+HeapDumpOnOutOfMemoryError

代码示例

import java.util.ArrayList;
import java.util.List;

public class HeapOOM {

    static class OOMObject{

    }

    public static void main(String[] args) {
        List<OOMObject> list = new ArrayList<>();
        while(true) {
            list.add(new OOMObject());
        }
    }
}

结果

java.lang.OutOfMemoryError: Java heap space
Dumping heap to java_pid17808.hprof ...
Heap dump file created [27978623 bytes in 0.066 secs]
Exception in thread "main" java.lang.OutOfMemoryError: Java heap space
    at java.util.Arrays.copyOf(Unknown Source)
    at java.util.Arrays.copyOf(Unknown Source)
    at java.util.ArrayList.grow(Unknown Source)
    at java.util.ArrayList.ensureExplicitCapacity(Unknown Source)
    at java.util.ArrayList.ensureCapacityInternal(Unknown Source)
    at java.util.ArrayList.add(Unknown Source)
    at myrabbitmq.HeapOOM.main(HeapOOM.java:15)