gpt4 book ai didi

java - 为什么在 Java 中创建一个 MAX_INT 大小的数组是不可能的?

转载 作者:行者123 更新时间:2023-12-01 01:52:09 25 4
gpt4 key购买 nike

我已经阅读了这个问题的一些答案( Why I can't create an array with large size?https://bugs.openjdk.java.net/browse/JDK-8029587 ),但我不明白以下内容。
“在 GC 代码中,我们将单词中对象的大小作为 int 传递。”据我所知,JVM 中一个字的大小是 4 个字节。据此,如果我们将大尺寸(例如,MAX_INT - 5)的长数组的大小作为int传递,我们必须得到OutOfMemoryException,请求的数组大小超过VM限制,因为大小对于int来说太大了没有标题的大小。那么为什么不同类型的数组对最大元素数有相同的限制?

最佳答案

只解决为什么不同类型的数组对最大元素数有相同的限制?部分:

因为在实际中它并不重要;但允许实现 JVM 的代码更简单。

当只有 限制;对于所有类型的数组都是一样的;然后您可以使用该代码处理所有数组。而不是拥有大量特定于类型的代码。

考虑到需要“大”数组的人仍然可以创建它们;只有那些需要真的很大阵列受到影响;为什么要花那么多精力?

关于java - 为什么在 Java 中创建一个 MAX_INT 大小的数组是不可能的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43592109/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com