Java的OutOfMemoryError和StackOverflowError

简介: Java的OutOfMemoryError和StackOverflowError Java Virtual Machine定义了两种异常:OutOfMemoryError与StackOverflowError。

Java的OutOfMemoryError和StackOverflowError

 

Java Virtual Machine定义了两种异常:OutOfMemoryError与StackOverflowError。

OutOfMemoryError:Java启动一个线程时,JVM没有足够的内存空间为该线程分配Java栈,JVM抛出OutOfMemoryError异常。

StackOverflowError:Java启动一个线程时,JVM为它分配一个栈,Java栈以帧为单位保持线程运行状态,当线程调用一个方法时,JVM压入一个新的栈帧到这个线程的栈中,只要这个方法没返回,这个栈帧就存在。如果方法的嵌套调用深度太深(如深度很深的递归),随着Java栈中的帧增多,最终导致线程的栈中的所有栈帧的大小总和大于-Xss设定的值,即产生StackOverflowError,栈溢出异常。

“ If the computation in a thread requires alarger native method stack than is permitted, the Java Virtual Machine throws aStackOverflowError . ”

 

相关文章
|
Java
Java内存溢出OutOfMemoryError的产生与排查
在java的虚拟机异常中,有两个异常是大家比较关心的,一个是StackOverflowError,另一个是OutOfMemoryError。今天我们就来看看OutOfMemoryError是怎么产生的,以及如何去排查这个异常。
742 0
Java内存溢出OutOfMemoryError的产生与排查
|
Java
Java_异常_04_ OutOfMemoryError系列
二、参考资料 1.铁猫 OutOfMemoryError系列(1): Java heap space OutOfMemoryError系列(2): GC overhead limit exceeded OutOfMemoryError系列(3): Permgen space OutOfMemor...
1044 0
|
Java
OutOfMemoryError系列(1): Java heap space
这是本系列的第一篇文章, 相关文章列表: OutOfMemoryError系列(1): Java heap space OutOfMemoryError系列(2): GC overhead limit exceeded OutOfMemoryError系列(3): Permgen space OutOfMemoryError系列(4): Metaspace 每个Java程序都只能使用一定量的内存, 这种限制是由JVM的启动参数决定的。
1262 0
|
Java
OutOfMemoryError异常----Java堆溢出
Java堆溢出     在Java虚拟机规范的描述中,除了程序计数器外,虚拟机内存的其他几个运行时区域都有发生OutOfMemoryError(下面都叫OOM)异常的肯能,下面就通过一些实例来验证异常发生的场景。
1021 0
java面试题:写代码使得分别出现StackOverflowError和OutOfMemoryError
今天做了个笔试,这是其中的一道题目:写代码使得分别出现StackOverflowError和OutOfMemoryError。 1.StackOverflowError   堆栈溢出错误一般是递归调用嘛。
861 0
|
Java Android开发
JAVA中出现OutOfMemoryError:Eclipse中设定Java虚拟机内存
Eclipse中设定Java虚拟机内存 在使用Eclipse的过程中,有时会遇到使用Java虚拟机内存不够的情况,这时Eclipse就会提示你重启,对于大型开发,应修改 VM 自变量以使有更多的堆可用。
1030 0