我正在尝试实例化一个巨大的ArrayList
List<Integer> list = new ArrayList<Integer>(Integer.MAX_VALUE);
在日食中运行它,我得到:
java.lang.OutOfMemoryError: Requested array size exceeds VM limit
如果我这样做:
List<Integer> list = new ArrayList<Integer>(Integer.MAX_VALUE - 2);
我遇到其他错误:
Java HotSpot(TM) 64-Bit Server VM warning: INFO: os::commit_memory failed; error='The paging file is too small for this operation to complete'
#
# there is insifficent memory for the Java Runtime Environment to continue.
我在Eclipse的运行配置中使用以下设置启动程序:-Xmx8G
那么这是什么问题?即使我增加到-Xmx16G
,它仍然会给出相同的错误
更新我有点困惑,RAM的实际大小在这里重要吗?由于分页,进程无法访问无限的虚拟内存吗?
我有点困惑,RAM的实际大小在这里重要吗?