【发布时间】:2012-07-06 11:44:51
【问题描述】:
一旦抛出此异常,导致此异常的对象是否内存不足?它会立即发生吗?
换句话说,如果我将对象添加到列表中,在某些时候这将不再发生,并且会引发 OOM 错误。到时候,列表本身有什么变化吗?
java.lang.OutOfMemoryError: Java heap space
【问题讨论】:
-
这是一个错误(不可恢复)。
标签: java out-of-memory
一旦抛出此异常,导致此异常的对象是否内存不足?它会立即发生吗?
换句话说,如果我将对象添加到列表中,在某些时候这将不再发生,并且会引发 OOM 错误。到时候,列表本身有什么变化吗?
java.lang.OutOfMemoryError: Java heap space
【问题讨论】:
标签: java out-of-memory
当无法创建新对象时抛出此错误。当前对象将继续存在。
但是,由于此类错误的性质,当前代码将停止执行,并且可能很快就会对当前对象进行垃圾回收。这仅取决于您的代码结构以及是否仍保留对您的对象的引用。
【讨论】:
当 Java 虚拟机因为内存不足而无法分配对象时抛出,并且垃圾收集器无法提供更多内存。
【讨论】:
根据http://docs.oracle.com/javase/6/docs/api/,OutOfMemoryError 是:
当 Java 虚拟机无法分配对象时抛出,因为 内存不足,无法再提供内存 垃圾收集器。
所以一旦 JVM 发现它没有足够的堆空间来为您尝试创建的新对象分配内存,就会发生这种情况。所以对象永远不会被创建,因为你没有足够的内存。
【讨论】: