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