JVM中OutOFMemory和StackOverflowError异常代码

简介:

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博客园博客,原文链接:http://www.cnblogs.com/DreamDrive/p/6681808.html,如需转载请自行联系原作者
相关文章
|
存储 Java
【面试题精讲】JVM-运行时数据区-StackOverFlowError
【面试题精讲】JVM-运行时数据区-StackOverFlowError
|
开发框架 前端开发 Java
JVM学习笔记(二)------Java代码编译和执行的整个过程
JVM学习笔记(二)------Java代码编译和执行的整个过程
|
5月前
|
存储 缓存 算法
深入浅出JVM(二)之运行时数据区和内存溢出异常
深入浅出JVM(二)之运行时数据区和内存溢出异常
|
3月前
|
Arthas 存储 监控
JVM内存问题之JNI内存泄漏没有关联的异常类型吗
JVM内存问题之JNI内存泄漏没有关联的异常类型吗
|
3月前
|
JSON Java BI
一次Java性能调优实践【代码+JVM 性能提升70%】
这是我第一次对系统进行调优,涉及代码和JVM层面的调优。如果你能看到最后的话,或许会对你日常的开发有帮助,可以避免像我一样,犯一些低级别的错误。本次调优的代码是埋点系统中的报表分析功能,小公司,开发结束后,没有Code Review环节,所以下面某些问题,也许在Code Review环节就可以避免。
158 0
一次Java性能调优实践【代码+JVM 性能提升70%】
|
3月前
|
缓存 算法 Java
JVM内存溢出(OutOfMemory)异常排查与解决方法
JVM内存溢出(OutOfMemory)异常排查与解决方法
|
5月前
|
存储 算法 Java
JVM-01Java内存区域与内存溢出异常(上)【运行时区域数据】
JVM-01Java内存区域与内存溢出异常(上)【运行时区域数据】
52 0
|
存储 缓存 Java
Java基础知识第二讲:Java开发手册/JVM/集合框架/异常体系/Java反射/语法知识/Java IO
Java基础知识第二讲:Java开发手册/JVM/集合框架/异常体系/Java反射/语法知识/Java IO
226 0
Java基础知识第二讲:Java开发手册/JVM/集合框架/异常体系/Java反射/语法知识/Java IO
|
11月前
|
Java
强制要求JVM始终抛出含堆栈的异常(-XX:-OmitStackTraceInFastThrow)
强制要求JVM始终抛出含堆栈的异常(-XX:-OmitStackTraceInFastThrow)
136 0
|
监控 Java
jvm异常排查
jvm异常排查
50 0