题目
(多选)关于OutOfMemoryError,下面说法正确的是()?
A. java.lang.OutOfMemoryError: PermGen space
增加-XX:MaxPermSize这个参数的值的话,这个问题通常会得到解决。
B. java.lang.OutOfMemoryError: Requested array size exceeds VM limit
当你正准备创建一个超过虚拟机允许的大小的数组时,这条错误将会出现
C. java.lang.OutOfMemoryError: Java heap space
一般情况下解决这个问题最快的方法就是通过-Xmx参数来增加堆的大小
D. java.lang.OutOfMemoryError: nativeGetNewTLA
这个异常只有在jRockit虚拟机时才会碰到
答案
A B C
解析
A:java.lang.OutOfMemoryError: PermGen space
属于运行时常量池溢出,设置-XX:MaxPermSize可以解决。
B:java.lang.OutOfMemoryError: Requested array size exceeds VM limit
数组过长导致堆内存溢出,加大堆内存或减少数组长度。
C:java.lang.OutOfMemoryError: Java heap space
堆内存不足,加大堆内存
D:java.lang.OutOfMemoryError: nativeGetNewTLA
指当虚拟机不能分配新的线程本地空间(Thread Local Area)的时候错误信息,此错误是线程申请一个新的TLA时产生的,这个异常一般只会发生在jRockit虚拟机,只有过于绝对。