2.4.1 Java堆溢出

代码2-1,java堆内存溢出异常测试,HeapOOM.java

package cn.chapter2;

import java.util.ArrayList;
import java.util.List;

public class HeapOOM {
	
	static class OOMObject{
	}
	
	public static void main(String[] args){
		List<OOMObject> list = new ArrayList<OOMObject>();
		
		while(true){
			list.add(new OOMObject());
		}
	}
}
/**
 * Vm args:-Xms20M -Xmx20M -XX:+HeapDumpOnOutOfMemoryError
 * 堆的最小值参数-Xms,堆的最大值参数-Xmx
 * -XX:+HeapDumpOnOutOfMemoryError表示让虚拟机在出现内存异常时Dump出当前的内存堆转储快照
 * -XX:HeapDumpPath:为快照文件位置
 */

设置参数:-verbose:gc -Xms20M -Xmx20M -Xmn10M -XX:+PrintGCDetails -XX:SurvivorRatio=8(点击Run---->Run Configurations;选中刚刚建立的java程序HeapOOM.java,然后点击Arguments,在vm arguments中输入参数:-verbose:gc -Xms20M -Xmx20M -Xmn10M -XX:+PrintGCDetails -XX:SurvivorRatio=8),如下图所示:

实战:OutOfMemoryError异常(myeclipse)

 最后点击apply,然后点击run,有运行结果:

实战:OutOfMemoryError异常(myeclipse)

和书上的结果不太一样,没看明白运行结果。

相关文章: