[英]java.lang.OutOfMemoryError - new int[Integer.MAX_VALUE];
我在Eclipse中编写了一个Main类,其代码如下:
...
int []test = new int[Integer.MAX_VALUE];
...
它具有以下文件:
Exception in thread "main" java.lang.OutOfMemoryError: Java heap space
这需要多少堆大小? 我使用以下方法增加了eclipse大小但仍然失败:
-Xms4g
-Xmx4g
int
在Java中是32位。 您需要超过8G的内存来存储该阵列(4 *(2 31 -1))。
因为你声明了一个原始类型的向量(int),Java将尝试为你的向量的每个位置分配32位
你向量的长度实际上是2147483647
所以做一些计算:
需要的内存= 32位x 2147483647 = 68719476704位= 8589934588字节
需要的内存= 8589934 KB
需要的内存= 8589 MB
需要的内存= 8.58 GB
因此,您需要大约8 GB才能运行您的应用程序。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.