1.Out of Memory 异常
右键Run As --->Run Configuration 设置JVM参数 -Xms20m -Xmx20m
上代码:
1 /** 2 * VM Args:-Xms20m -Xmx20m -XX:+HeapDumpOnOutOfMemoryError 3 */ 4 public class HeapOOM { 5 static class OOMObject { 6 } 7 public static void main(String[] args) { 8 List<OOMObject> list = new ArrayList<OOMObject>(); 9 while (true) { 10 list.add(new OOMObject()); 11 } 12 } 13 }
设置参数
运行结果:
在项目的根目录下生成了一个 Java_pid***的文件
这个文件大小27M....还是挺大的...用文本编辑器之后代开是乱码....可以使用其他方式打开...
解决OOM异常可以参考如下博文总结:
设置JVM参数的几种方式解决java.lang.OutOfMemoryError:Java heap space
2.Stack over Flow异常
1 public class JavaVMStackSOF { 2 private int stackLength = 1; 3 public void stackLeak() { 4 stackLength++; 5 stackLeak(); 6 } 7 public static void main(String[] args) throws Throwable { 8 JavaVMStackSOF oom = new JavaVMStackSOF(); 9 try { 10 oom.stackLeak();//一直入栈不出来...只要代码没有特别复杂,stackoverflow的错误是不会出现的. 11 } catch (Throwable e) { 12 System.out.println("stack length:" + oom.stackLength); 13 throw e; 14 } 15 } 16 }
运行结果: