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自定义ThreadPool—暂停任务提交并取消当前排队任务

Jooq外键关系

替换com. sun. jndi. dns. DnsContextFactory Wildfly23 JDK 17

错误:在Liferay7.4中找不到符号导入com.liferay.portal.kernel.uuid.PortalUUID;";

';com.itextpdf.ext.html.WebColors已弃用

使用Spring和ActiveMQ的侦听器方法引发属性名称不能重复为空警告

Helidon 4和Http API

Spring @Value default无法计算表达式

Mac上的全屏截图在使用JavaFX时不能正常工作吗?

我如何解释这个错误?必需类型:供应商R,提供:收集器对象,捕获?,java.util.List java.lang.Object>>

尽管通过中断请求线程死亡,但线程仍将继续存在

在Oracle JDBC连接中,连接失效和身份验证失效是什么意思?

来自外部模块的方面(对于Java+Gradle项目)不起作用

JavaFX:无论何时显示应用程序,如何更改组件/ node 位置?

当我将JTextField的getText函数与相等的String进行比较时;t返回true

java21预览未命名的符号用于try-with-resources

读取ConcurrentHashMap中的可变对象

将天数添加到ZonedDateTime不会更改时间

如何解释泛型类层次 struct 中子类的返回值类型和参数定义?

为什么方法接受协变类型的匿名泛型类对象?