java.lang.OutOfMemoryError Demo

代码程序

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

}

执行步骤

  1. 编译
javac MyHeapOutOfMemDemo.java
  1. 运行
java java -Xms20m -Xmx20m -XX:+HeapDumpOnOutOfMemoryError MyHeapOutOfMemDemo

运行结果

image.png

在运行目录生成java_pid2342.hprof文件。
用JProfiler打开如图:


image.png

根据图看出MyHeapOutOfMemDemo对象创建太多,占用了堆内存,导致内存溢出。

总结

-XX:+HeapDumpOnOutOfMemoryError 

当堆内存空间溢出时输出堆的内存快照。

 -XX:HeapDumpPath=/var/log/... 

指定输出文件目录

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 这篇文章是我之前翻阅了不少的书籍以及从网络上收集的一些资料的整理,因此不免有一些不准确的地方,同时不同JDK版本的...
    高广超阅读 16,037评论 3 83
  • 从三月份找实习到现在,面了一些公司,挂了不少,但最终还是拿到小米、百度、阿里、京东、新浪、CVTE、乐视家的研发岗...
    时芥蓝阅读 42,744评论 11 349
  • 书名:心流 作者:米哈里·契克森米哈赖 篇目:p99-p103 收获: 001什么是注意力? 注意力是一种受我们控...
    王彩琼阅读 125评论 0 0
  • 星耀小学三年一班刘昊亲子共读国学经典《银河是条河吗》,读书时长30分 我坚持,我读书,我快乐,,,
    liuhao刘昊阅读 173评论 0 0
  • 我觉得诗还是短一点,尽可能美一些。长,意象多了不如散文,丑,不如杂文骂的深刻。 诗好比感慨,过了些日子,看到一些事...
    如果而已阅读 343评论 0 2

友情链接更多精彩内容