在Java中,内存泄漏会抛出OOM异常。
设置启动参数
-Xmx20m
-Xms20m
-Xmn2m
-XX:SurvivorRatio=2
-XX:+PrintGCDetails
-XX:+HeapDumpOnOutOfMemoryError //发生oop异常时,导出信息
-XX:HeapDumpPath=c.dump 指定发生oom异常时,导出的堆信息保存的位置
public static void main(String[] args) {
ArrayList a=new ArrayList();
for (int i=0;i<20;i++){
a.add(new byte[2*1024*1024]);
}
}
就会抛出 Exception in thread “main” java.lang.OutOfMemoryError: Java heap space。
堆内存设置的是20M,而需要的大于40M,所以内存不够,就抛出了OOM异常。