【发布时间】:2017-12-20 04:34:11
【问题描述】:
我想知道如何在 Java 中以最大可能的长度实例化一个 long[] 数组。如果它太大,我会得到一个内存错误。我需要这个数组尽可能大而不超过平台相关限制。如何才能做到这一点?我的计算机上的限制似乎是大约 85000000 个索引,但在其他计算机上可能会更少或更多。
【问题讨论】:
-
long 有:java.lang.Long 类:min = -9,223,372,036,854,775,808,max = 9,223,372,036,854,775,807
-
这怎么可能有用?
-
你需要这个……?
-
我正在编写一个国际象棋算法,这个数组将是一个转置表。数组越大,运行速度越快。
-
为自己分配所有可用内存是危险的。请记住,除了您编写的应用程序代码之外,Java 程序中还会发生其他事情。许多这些东西也动态分配内存,如果你把它全部吸完,它们就会中断。您应该寻找更灵活的解决方案,例如
WeakHashMap。WeakHashMap可以变大,但也可以响应其他事物的内存需求而缩小。
标签: java arrays out-of-memory