【深入理解java虚拟机v3】代码清单2-3 java堆内存溢出异常测试

测试环境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 :当堆内存空间溢出时输出堆的内存快照。

猜你喜欢

转载自blog.csdn.net/m0_45406092/article/details/108473192