DKS*_*ore 10 java jvm out-of-memory
我使用了太阳网站的Out Of Memory帮助.引用的地方
内存不足:请求的阵列大小超过VM限制
这表示应用程序尝试分配大于堆大小的数组.例如,如果应用程序尝试分配512MB的数组但最大堆大小为256MB,则将抛出此错误.在大多数情况下,问题可能是堆大小太小或者错误导致应用程序尝试创建一个大小被计算为错误巨大的数组.
我试图模仿这个
import java.util.ArrayList;
import java.util.List;
public class JavaTest {
public static void main(String[] args){
long[] ll = new long[64*1024*1024];
}
}
Run Code Online (Sandbox Code Playgroud)
在我的机器上
javac *.java;java -Xmx256m JavaTest
Run Code Online (Sandbox Code Playgroud)
但上面的线正在生产
Exception in thread "main" java.lang.OutOfMemoryError: Java heap space
at JavaTest.main(JavaTest.java:7)
我错过了什么?
更新: 我的java版本是
$java -version java version "1.6.0_15" Java(TM) SE Runtime Environment (build 1.6.0_15-b03) Java HotSpot(TM) Server VM (build 14.1-b02, mixed mode)
aku*_*uhn 22
为了我
long[] l = new long[Integer.MAX_VALUE];
Run Code Online (Sandbox Code Playgroud)
产量 Exception in thread "main" java.lang.OutOfMemoryError: Requested array size exceeds VM limit
PS:如果你需要为了测试而产生异常,你也可以throw new OutOfMemoryError("Requested array size exceeds VM limit")自己.