Out Of Memory : Requested array size exceeds VM limit
This indicates that the application attempted to allocate an array that is larger than the heap size. For
example, if an application tries to allocate an array of 512MB but the maximum heap size is 256MB,
then this error will be thrown. In most cases the problem is likely to be either that the heap size is too
small or that a bug results in the application attempting to create an array whose size is calculated to
be incorrectly huge.
我试图模仿这个
import java.util.ArrayList;
import java.util.List;
public class JavaTest {
public static void main(String[] args){
long[] ll = new long[64*1024*1024];
}
}
在我的机器上
javac *.java;java -Xmx256m JavaTest
但上面的线正在生产
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)
解决方法:
为了我
long[] l = new long[Integer.MAX_VALUE];
产生线程“main”中的异常java.lang.OutOfMemoryError:请求的数组大小超过VM限制
PS:如果你需要为了测试而产生异常,你也可以自己抛出新的OutOfMemoryError(“请求的数组大小超过VM限制”).
标签:java,jvm,out-of-memory
来源: https://codeday.me/bug/20191001/1838694.html