【问题标题】:What's the limit of Java 2D array length? [duplicate]Java 2D 数组长度的限制是多少? [复制]
【发布时间】:2015-04-15 17:27:05
【问题描述】:

我在做一个二维数组的边界检查是array[8][LIMIT];然后我尝试了几次,发现LIMIT变量不应该大于89489404,否则会出现这样的异常:
@987654323 @

我知道二维数组应该在连续空间中分配内存,但出于好奇,Java如何确定这个数字?如果我需要根据用户输入new 一个二维数组,我如何检查边界以便不会抛出OutOfMemoryError

【问题讨论】:

    标签: java arrays limit


    【解决方案1】:

    数组的最大大小取决于通过 -Xmx 启动参数分配给 JVM 的内存量。如果您为 VM 分配更多内存,则它可以在可用内存耗尽之前分配更多空间。但是绝对最大值是 2^31-1,因为 java 使用有符号整数并且索引必须是正数

    【讨论】:

    • 感谢您的回答。因此,如果我不将设置更改为 VM,最大尺寸应该保持不变,我可以假设我的情况下最大尺寸应该是 8* 89489404 吗? array[x][y] 其中 xy=8 89489404 应该是极限?
    • 应该是相同的 +- 几个元素,具体取决于使用的 Java 版本/实现。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-07-20
    相关资源
    最近更新 更多