深入理解java虚拟机--OutOfMemoryError
来源:互联网 发布:第二梦软件 编辑:程序博客网 时间:2024/05/22 16:58
1、堆溢出
Java堆用于存储实例对象,只要不断创建对象,并且保证GC Roots到对象之间有引用的可达,避免垃圾收集器回收实例对象,就会在对象数量达到堆最大容量时产生OutOfMemoryError异常。
举例:
说明(虚拟机参数堆的最小值-Xms与最大值-Xmx相同是为了避免堆动态扩展,-XX:+HeapDumpOnOutOfMemoryError可以让java虚拟机在出现内存溢出异常时时产生当前堆内存快照以便进行异常分析。)
/*
* VM Args: -Xms20m -Xmx20m -XX:+HeapDumpOnOutOfMemoryError
*/
public class HeapOOM {
static class OOMObejct{}
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
List<OOMObejct> list = new ArrayList<OOMObejct> ();
while(true){
list.add(new OOMObejct());
}
}
}
运行结果:
java.lang.OutOfMemoryError: Java heap space
Dumping heap to java_pid7640.hprof ...
Heap dump file created [22063830 bytes in 0.320 secs]
0 0
- 深入理解java虚拟机--OutOfMemoryError
- 深入理解Java虚拟机--OutOfMemoryError异常
- 深入理解Java虚拟机:实战OutOfMemoryError
- 《深入理解java虚拟机》读书笔记二 【OutOfMemoryError】
- [深入理解Java虚拟机]第二章 实战 :OutOfMemoryError异常
- 深入理解java虚拟机 第2章(三):OutOfMemoryError异常
- 《深入理解java虚拟机》学习笔记9——实战:OutOfMemoryError异常
- 深入理解java虚拟机
- Java虚拟机 深入理解
- 深入理解Java虚拟机
- 深入理解java虚拟机
- 深入理解Java虚拟机
- 深入理解java虚拟机
- 《深入理解java》虚拟机
- 《深入理解java虚拟机》
- 深入理解Java虚拟机
- 深入理解JAVA虚拟机
- 深入理解java虚拟机
- Android UI优化
- PHP编写的Server程序在某些情况下表现会较差
- mxnet系列 全连接层代码阅读
- 从远程git服务器上导入项目到本地
- java第三方,邮件,短信功能
- 深入理解java虚拟机--OutOfMemoryError
- java 参数类型Object...
- Block存储域探析
- HTTP协议详解
- 用opencsv和用Bufferedreader/writer进行csv文件的读写及简单处理
- Tensorflow中reshape()函数的使用
- 生成式对抗网络---机器学习中的热门话题
- 参数传值,传引用,传值,传指针
- 【Linux】VMware下安装CentOS