首页 > 解决方案 > java中数组的最大元素数

问题描述

如何在 java 中的数组中存储超过 2^128 个元素。

我试过Integer.MAX_value了,但这不是我想要的范围。我想要更多的数字。

这是使用 (Integer.MAX_VALUE) 的错误:

线程“main”java.lang.OutOfMemoryError 中的异常:请求的数组大小超过了 VM 限制。

标签: javaarrayslong-integer

解决方案


在 Java 中,数组内部使用整数(int 不是 Integer)作为索引,最大大小受整数的最大大小限制。所以理论上是2^31-1 = 2147483647,也就是Integer.MAX_VALUE。

但是在最近的 HotSpot JVM 中,观察到数组的最大大小可以是 Integer.MAX_VALUE - 5。


推荐阅读