抛出此异常后,是否会导致内存丢失?它会马上发生吗?
换句话说,如果我将对象添加到列表中,那么在某些时候这种情况就不再发生了,并且抛出了OOM错误。那时候,列表本身有什么事吗?
java.lang.OutOfMemoryError: Java heap space
答案 0 :(得分:1)
无法创建新对象时抛出此异常。当前对象将继续存在。
但是,由于此类错误的性质,当前代码将停止执行,很可能很快就会对当前对象进行垃圾回收。它只取决于代码的结构以及引用是否仍保留在您的对象中。
答案 1 :(得分:0)
当Java虚拟机因内存不足而无法分配对象时抛出,垃圾收集器不再提供更多内存。
答案 2 :(得分:0)
根据http://docs.oracle.com/javase/6/docs/api/,OutOfMemoryError为:
当Java虚拟机无法分配对象时抛出,因为 内存不足,没有更多的内存可供使用 垃圾收集器。
一旦JVM发现它没有足够的堆空间来为你想要创建的新对象分配内存,就会发生这种情况。因此,对象永远不会被创建,因为您没有足够的内存。