在Java虚拟机规范中,除了程序计数器外,虚拟机内存的其他几个运行时区域都可能会发生OutOfMemoryError异常。
在IDEA中添加JVM参数如下:
一、Java堆溢出
Java堆主要是用来存储对象,系统中不断的创建对象,并且在GC Roots到对象之间有可达路径,使垃圾回收机制不会回收这些对象,那么在对象数量达到最大堆的容量限制后就会产生内存溢出异常。代码如下:
/**
* JVM参数:-Xms20m -Xmx20m -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=E:\test\heapdump.hprof
* -Xms:堆的最小内存
* -Xmx:堆的最大内存
* -XX:+HeapDumpOnOutOfMemoryError :出现内存溢出时Dump出当前内存堆转储快照
* -XX:HeapDumpPath= :快照的存放路径
*/
public class HeapOOM {
更多推荐
java outofmemory异常_OutOfMemoryError异常的几种原因
发布评论