【JVM】1_测试堆内存溢出异常

来源:互联网 发布:dede淘宝客跳转 编辑:程序博客网 时间:2024/05/10 04:20
import java.util.ArrayList;import java.util.List;/** * VM参数 -Xms20m -Xmx20m -XX:+HeapDumpOnOutOfMemoryError * -Xms : 堆内存最小值(单位M) * -Xmx : 堆内存最大值(单位M) * * -XX:+HeapDumpOnOutOfMemoryError : * 可以让虚拟机在出现内存溢出异常时Dump出当前的内存堆转储快照以便事后进行分析 * * */public class Main {    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 spaceDumping heap to java_pid18932.hprof ...Exception in thread "main" java.lang.OutOfMemoryError: Java heap spaceat java.util.Arrays.copyOf(Arrays.java:3210)at java.util.Arrays.copyOf(Arrays.java:3181)at java.util.ArrayList.grow(ArrayList.java:261)at java.util.ArrayList.ensureExplicitCapacity(ArrayList.java:235)at java.util.ArrayList.ensureCapacityInternal(ArrayList.java:227)at java.util.ArrayList.add(ArrayList.java:458)at Main.main(Main.java:21)Heap dump file created [28171839 bytes in 0.095 secs]Process finished with exit code 1

JProfiler打开快照:





原创粉丝点击