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 }
运行结果:

作者:SummerChill 本博客为自己总结亦或在网上发现的技术博文的转载。 如果文中有什么错误,欢迎指出。以免更多的人被误导。 |
















