jvm_内存溢出_Java堆溢出
来源:互联网 发布:什么是数据化 编辑:程序博客网 时间:2024/05/17 23:48
Java堆用于存放对象实例,我们只要不断的创建对象,并且保证GC Roots到对象之间有可达路径来避免垃圾回收机制清除这些对象,就会在对象数量到达最大堆的容量限制后产生内存溢出异常。
例:
我们手动限制Java堆的大小为20MB,不可扩展(将堆的最小值-Xms参数与最大值-Xmx参数均设置为20M)。设置方法:eclispe中window->preferences->Java->Installed JRE,点击右侧的Edit 按钮,在编辑界面中的“Default VM Arguments ”选项中,填入:-Xms20m -Xmx20m
package jvm;import java.util.ArrayList;import java.util.List;/** * -Xms20m -Xmx20m * * @author Poison * */public class HeapOOM { static class OOMObject { public static void main(String[] args) { List<OOMObject> list = new ArrayList<HeapOOM.OOMObject>(); while (true) { list.add(new OOMObject()); } } }}
运行结果:
Exception in thread “main” java.lang.OutOfMemoryError: Java heap space
at java.util.Arrays.copyOf(Arrays.java:2245)
at java.util.Arrays.copyOf(Arrays.java:2219)
at java.util.ArrayList.grow(ArrayList.java:242)
at java.util.ArrayList.ensureExplicitCapacity(ArrayList.java:216)
at java.util.ArrayList.ensureCapacityInternal(ArrayList.java:208)
at java.util.ArrayList.add(ArrayList.java:440)
at jvm.HeapOOM$OOMObject.main(HeapOOM.java:11)
- jvm_内存溢出_Java堆溢出
- jvm_内存溢出_本机直接内存溢出
- jvm_内存溢出_运行时常量池溢出
- Eclipse堆内存溢出
- 堆内存溢出
- java内存堆溢出
- 堆内存溢出原因
- Java堆内存溢出
- jvm_内存溢出_虚拟机栈和本地方法栈溢出
- java内存溢出示例(堆溢出、栈溢出)
- java内存溢出示例(堆溢出、栈溢出)
- java内存溢出示例(堆溢出、栈溢出)
- 操作堆外内存溢出
- JVM性能调优3:JVM_堆溢出分析过程和命令
- java 内存泄露 :堆溢出和非堆溢出
- jvm_方法区溢出(PermGen Space)
- 堆溢出,栈溢出
- 堆溢出、栈溢出
- 函数指针和block的区别
- ios8 使用storyboard 进行自动布局(一)
- 何为不带缓冲的I/O——read & write
- 基础练习 Sine之舞
- Servlet详解之两个init方法的作用
- jvm_内存溢出_Java堆溢出
- 线程函数
- 键盘对应ASCII码
- 排序系列之一
- A+B(1003)
- 消息同步框架[参考微信的消息同步]
- 教你透彻了解红黑树
- office2013制作网页
- C++ STL之vector详解