本次在eclipse中實踐本異常:
通過無終止的在隊中創建對象,以製造堆溢出的情況。
虛擬機參數設置:-Xms20m -Xmx20m -XX:+HeapDumpOnOutOfMemoryError
將最大內存和最小內存設爲相等是爲了避免虛擬機自動擴展對內存大小!
參數解釋:
-Xms20m:虛擬機堆的最小內存
-Xmx20m:虛擬機堆的最大內存
-XX:+HeapDumpOnOutOfMemoryError:生成堆轉儲快照以便後期內存溢出異常分析
測試類:
package oom;
import java.util.ArrayList;
/**
* HeapOOM.java
* @author anyunpei
*2019年1月16日下午7:58:42
*-Xms20m -Xmx20m -XX:+HeapDumpOnOutOfMemoryError
*/
public class HeapOOM {
static class OOMProject{
}
public static void main(String[] args) {
ArrayList<OOMProject> arrayList = new ArrayList<OOMProject>();
while (true) {
arrayList.add(new OOMProject());
}
}
}
需要調整虛擬機參數:右擊測試類
結果: