StackOverflowError和OutOfMemoryError产生原因汇总
2017-12-19 16:53
399 查看
1、线程请求的栈深度大于虚拟机所允许的深度,将抛出StackOverflowError 异常
—| 递归可能造成StackOverflowError
—| 不断创建线程可能造成StackOverflowError
2、栈的深度(大小类似于弹夹深度)可以自动扩展,扩展时无法申请到足够的内存时会抛出OutOfMemoryError异常
3、虚拟机栈一样,本地方法栈区域也会抛出StackOverflowError 和OutOfMemoryError
异常。
4、如果在堆中没有内存完成实例分配,并且堆也无法再扩展时,将会抛出OutOfMemoryError 异常
5、当方法区无法满足内存分配需求时,将抛出OutOfMemoryError 异常。
6、当常量池(方法区的一部分)无法再申请到内存时会抛出OutOfMemoryError 异常
7、各个内存区域的总和大于物理内存限制(包括物理上的和操作系统级的限制),从而导致动态扩展时出现OutOfMemoryError异常。
—| 递归可能造成StackOverflowError
—| 不断创建线程可能造成StackOverflowError
2、栈的深度(大小类似于弹夹深度)可以自动扩展,扩展时无法申请到足够的内存时会抛出OutOfMemoryError异常
3、虚拟机栈一样,本地方法栈区域也会抛出StackOverflowError 和OutOfMemoryError
异常。
4、如果在堆中没有内存完成实例分配,并且堆也无法再扩展时,将会抛出OutOfMemoryError 异常
5、当方法区无法满足内存分配需求时,将抛出OutOfMemoryError 异常。
6、当常量池(方法区的一部分)无法再申请到内存时会抛出OutOfMemoryError 异常
7、各个内存区域的总和大于物理内存限制(包括物理上的和操作系统级的限制),从而导致动态扩展时出现OutOfMemoryError异常。
相关文章推荐
- JVM学习之两种异常StackOverflowError和OutOfMemoryError产生的原因
- 调优JVM内存,并解决OutOfMemoryError,StackOverflowError等异常问题
- java内存溢出异常(OutOfMemoryError)和栈溢出异常(StackOverflowError)
- Java中StackOverflowError与OutOfMemoryError详解
- JVM StackOverflowError vs. OutOfMemoryError
- 代码使得分别出现StackOverflowError和OutOfMemoryError
- 调优JVM内存,并解决OutOfMemoryError,StackOverflowError等异常问题
- 调优JVM内存,并解决OutOfMemoryError,StackOverflowError等异常问题
- StackOverflowError 和 OutOfMemoryError
- 制造StackOverflowError与OutOfMemoryError
- OutOfMemoryError与StackOverFlowError
- 调优JVM内存,并解决OutOfMemoryError,StackOverflowError等异常问题
- StackOverflowError spaceOutOfMemoryError 通过jvm调优解决(转自http://blog.sina.com.cn/s/blog_790229d301015vz)
- StackOverflowError&OutOfMemoryError区别
- java.lang.OutOfMemoryError:PermGen space 或者Java heap space的产生原因以及解决办法
- 实战:OutOfMemoryError和StackOverflowError异常
- 调优JVM内存,并解决OutOfMemoryError,StackOverflowError等异常问题
- Java的OutOfMemoryError和StackOverflowError
- 调优JVM内存,并解决OutOfMemoryError,StackOverflowError等异常问题
- 理解StackOverflowError与OutOfMemoryError