加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

Java数组的最大限制

发布时间:2020-12-15 02:53:45 所属栏目:Java 来源:网络整理
导读:我试图在 Java中创建2D数组,如下所示: int[][] adjecancy = new int[96295][96295]; 但它失败了,出现以下错误: JVMDUMP039I Processing dump event "systhrow",detail "java/lang/OutOfMemoryError" at 2017/04/07 11:58:55 - please wait.JVMDUMP032I JVM
我试图在 Java中创建2D数组,如下所示:
int[][] adjecancy = new int[96295][96295];

但它失败了,出现以下错误:

JVMDUMP039I Processing dump event "systhrow",detail "java/lang/OutOfMemoryError" at 2017/04/07 11:58:55 - please wait.
JVMDUMP032I JVM requested System dump using 'C:eclipseworkspacesTryJavaProjcore.20170407.115855.7840.0001.dmp' in response to an event
JVMDUMP010I System dump written to C:eclipseworkspacesTryJavaProjcore.20170407.115855.7840.0001.dmp
JVMDUMP032I JVM requested Heap dump using 'C:eclipseworkspacesTryJavaProjheapdump.20170407.115855.7840.0002.phd' in response to an event
JVMDUMP010I Heap dump written to C:eclipseworkspacesTryJavaProjheapdump.20170407.115855.7840.0002.phd

解决这个问题的方法是增加JVM内存,但我正在尝试提交在线编码挑战的代码.它也失败了,我将无法改变那里的设置.

是否有任何标准限制或指导用于创建不应超过的大型阵列?

解决方法

int[][] adjecancy = new int[96295][96295];

当你这样做时,你试图分配96525 * 96525 * 32位,接近37091 MB,接近37演出.仅仅从Java获取内存是非常不可能的.

我认为你的程序初始化不需要那么多数据.可能你必须看看ArrayList,它给你动态的大小分配,然后在运行时继续释放是一个需要考虑的关键.

创建数组没有限制或限制.只要你有记忆,就可以使用它.但请记住,你不应该持有一块内存,这会让JVM变得忙碌.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读