Java数组可以包含的元素数量有限制吗?如果是,是什么?

推荐答案

没有看到正确的答案,尽管它很容易测试.

在最近的热点虚拟机中,正确答案是Integer.MAX_VALUE - 5.一旦你超越了这一点:

public class Foo {
  public static void main(String[] args) {
    Object[] array = new Object[Integer.MAX_VALUE - 4];
  }
}

您将获得:

Exception in thread "main" java.lang.OutOfMemoryError:
  Requested array size exceeds VM limit

Java相关问答推荐

Java 流的总和为

使用 Java 流对嵌套对象进行分组和排序

如何消除 Java 流上的声纳问题“重构代码以便使用此流管道”

如何使用 Java 8 遍历 Map 以获取重复字符键的字符串

不变泛型似乎无法正常工作

由于非私有方法未覆盖或实现超类型中的方法,因此无法使用“<>”

使用 Java Stream API 以声明性方式重写创建和填充 Map 的命令式代码

如何判断spark中的列数据类型

try 将 JSON 文件或字符串转换为 CSV 文件会得到一个空的 CSV 文件

Javax.swing 如何删除前一个矩形

如何在不定义每个 Spring bean 的情况下创建多个相同类型的 Spring bean

如何通过在 Java for Android 中以编程方式添加的 id 来获取组件

@PutMapping MockHttpServletResponse 的 JUnit RestControllerTest 正文为空

如何在收到 2 个整数之前要求输入?

让 Jackson 使用 GSON 注释

我们应该如何设计不同内部微服务之间的通信

如何将react 式 Java StepVerifier 应用于 Pojo

了解以下代码片段中的异常处理

关闭应用程序时单击通知按钮打开活动

VScode 抱怨 Java 项目没有明确的编码集