Java中的内存不足异常:
每当您用Java创建对象时,它都会存储在JVM的堆区中。如果JVM无法为新创建的对象分配内存,则抛出名为OutOfMemoryError的异常。
当我们长时间不关闭对象,或者试图一次处理大量数据时,通常会发生这种情况。
OutOfMemoryError中有3种类型的错误-
Java堆空间。
超出了GC开销限制。
彼尔姆根空间。
例子1
public class SpaceErrorExample { public static void main(String args[]) throws Exception { Float[] array = new Float[10000 * 100000]; } }
输出结果
运行时异常
Exception in thread "main" java.lang.OutOfMemoryError: Java heap space at sample.SpaceErrorExample.main(SpaceErrorExample.java:7)
例子2
import java.util.ArrayList; import java.util.ListIterator; public class OutOfMemoryExample{ public static void main(String args[]) { //实例化ArrayList对象 ArrayList<String> list = new ArrayList<String>(); //填充ArrayList- list.add("apples"); list.add("mangoes"); list.add("oranges"); //获取ArrayList的Iterator对象 ListIterator<String> it = list.listIterator(); while(it.hasNext()) { it.add(""); } } }
输出结果
运行时异常
Exception in thread "main" java.lang.OutOfMemoryError: Java heap space at sample.SpaceErrorExample.main(SpaceErrorExample.java:7)