为什么在 Java 中无法创建 MAX_INT 大小的数组?

2024-03-19

我读过这个问题的一些答案(为什么我无法创建大尺寸的数组? https://stackoverflow.com/questions/31382531/why-i-cant-create-an-array-with-large-size and https://bugs.openjdk.java.net/browse/JDK-8029587 https://bugs.openjdk.java.net/browse/JDK-8029587)并且我不明白以下内容。“在 GC 代码中,我们以 int 的形式传递对象的大小。”据我所知,JVM 中一个字的大小是 4 个字节。据此,如果我们将大尺寸长数组的大小(例如,MAX_INT - 5)作为 int 以单词形式传递,则必须得到 OutOfMemoryException请求的数组大小超出 VM 限制因为即使没有标头大小,对于 int 来说,大小也太大了。那么为什么不同类型的数组对元素的最大数量有相同的限制呢?


仅解决为什么不同类型的数组对元素的最大数量有相同的限制? part:

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

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

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

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

为什么在 Java 中无法创建 MAX_INT 大小的数组? 的相关文章

  • Java LostFocus 和 InputVerifier,按反向制表符顺序移动

    我有一个 GUI 应用程序 它使用 InputVerifier 在产生焦点之前检查文本字段的内容 这都是很正常的 然而 昨天发现了一个问题 这似乎是一个错误 但我在任何地方都找不到任何提及它的地方 在我将其报告为错误之前 我想我应该问 我在
  • 我们可以有条件地声明 spring bean 吗?

    有没有一种方法可以有条件地声明 Spring bean 例如
  • 我对线程失去了理智

    我想要这个类的对象 public class Chromosome implements Runnable Comparable
  • 未装饰窗户的 Windows Snap 功能?

    有谁知道如何允许未装饰的窗户使用此功能 唯一的选择就是重新实施它 有任何想法吗 谢谢 可停靠可能是唯一的JToolBar http docs oracle com javase tutorial uiswing components too
  • 如何使用 Java 引用释放 Java Unsafe 内存?

    Java Unsafe 类允许您按如下方式为对象分配内存 但是使用此方法在完成后如何释放分配的内存 因为它不提供内存地址 Field f Unsafe class getDeclaredField theUnsafe Internal re
  • 将类转换为 JSONObject

    我有好几堂这样的课 我想将类转换为 JSONObject 格式 import java io Serializable import com google gson annotations SerializedName public cla
  • ThreeTen 向后移植与 JSR-310 的比较

    由于某些原因 我们现在无法使用 java 8 我们仍然停留在 java 7 上 不过 我想使用新的JSR 310 date time APIs现在 使用官方向后移植 ThreeTen http www threeten org threet
  • 在光标所在行强制关闭!

    嘿 我正在尝试创建一个应用程序来查找存储在 SQlite 数据库中的 GPS 数据 但我面临一个问题 我构建了一个 DbAdapter 类来创建数据库 现在我尝试使用以下函数从另一个类获取所有数据上的光标 public Cursor fet
  • 在 Spring 中为 @Pathvariable 添加类级别验证

    在发布这个问题之前 我已经做了很多研究并尝试了很多可用的解决方案 这是我陷入的棘手情况 我有一个 Spring 控制器 它有多个请求映射 它们都有 PathVariables 控制器如下所示 Controller EnableWebMvc
  • 在 Scala 中将元素追加到列表末尾

    我无法添加 type 元素T到一个列表中List T 我尝试过myList myElement但它似乎创建了一个奇怪的对象并访问myList last始终返回放入列表中的第一个元素 我怎么解决这个问题 List 1 2 3 4 Result
  • 在java程序中使用c++ Dll

    我正在尝试使用System LoadLibrary 使用我用 C 编写的一个简单的 dll UseDllInJava java import com sun jna Library import com sun jna Native imp
  • UseCompressedOops JVM 标志有什么作用以及何时应该使用它?

    HotSpot JVM 标志是什么 XX UseCompressedOops我应该做什么以及什么时候使用它 在 64 位 Java 实例上使用它 与不使用它 时 我会看到什么样的性能和内存使用差异 去年大多数 HotSpot JVM 都默认
  • 使用 Proguard 通过 Dropbox.com 库混淆 Android 应用程序

    我刚刚创建了一个需要 Dropbox com API 库的 Android 应用程序 我现在尝试在 发布 模式下构建应用程序 并希望在代码上运行混淆器以对其进行混淆 但是 每当我尝试运行 Proguard 时 都会收到以下错误 Progua
  • 数据库中的持久日期不等于检索日期

    我有一个具有 Date 属性的简单实体类 此属性对应于 MySQL 日期时间列 Entity public class Entity Column name start date Temporal TemporalType TIMESTAM
  • Java 8 Stream,获取头部和尾部

    Java 8 引入了Stream http download java net jdk8 docs api java util stream Stream html类似于 Scala 的类Stream http www scala lang
  • 将字节数组转换为托管结构

    更新 这个问题的答案帮助我编写了开源项目GitHub 上的 AlicanC 现代战争 2 工具 https github com AlicanC AlicanC s Modern Warfare 2 Tool 你可以看到我是如何阅读这些数据
  • ArraySlice 中的 Swift [重复]

    这个问题在这里已经有答案了 在数组上使用 prefix 方法后 我得到了所谓的 arraySlice 我怎样才能将其转换为数组 我试图从 FacebookGraphApi 获取 Ints 然后请求前 3 个 前缀 3 并尝试将它们添加到新数
  • Spring 作为 JNDI 提供者?

    我想使用 Spring 作为 JNDI 提供程序 这意味着我想在 Spring 上下文中配置一个 bean 可以通过 JNDI 访问该 bean 这看起来像这样
  • 在会话即将到期之前调用方法

    我的网络应用程序有登录的用户 有一个超时 在会话过期之前 我想执行一个方法来清理一些锁 我已经实现了sessionListener但一旦我到达public void sessionDestroyed HttpSessionEvent eve
  • 设置 TreeSet 的大小

    有没有办法像数组一样对 Java 集合中的 TreeSet 进行大小限制 例如我们在数组中 anArray new int 10 数组具有固定长度 在创建数组时必须指定该长度 A TreeSet当您向其中添加元素时会自动增长 您无法设置其大

随机推荐

  • 扩展方法中的 ArgumentNullException 或 NullReferenceException?

    在空实例上调用扩展方法 扩展方法不允许 时 您认为抛出的最佳异常类型是什么 由于扩展方法只不过是静态方法 您可能会认为它应该是 ArgumentNullException 但另一方面 它们的使用方式与实例方法类似 因此使用 NullRefe
  • 检测主线程之外的 UI 操作

    注 此问题涉及从后台线程调用 UIKit 时发出警告 https stackoverflow com questions 10976424 warn on calls to uikit from background threads但没有给
  • 如何将进度条连接到函数?

    我正在尝试将进度条连接到我的项目的函数 这是我到目前为止所拥有的 但我很确定它什么也没做 def main pgBar start function1 function2 function3 function4 pgBar stop 这是我
  • Postgresql - 在大数据库中使用数组的性能

    假设我们有一个包含 600 万条记录的表 有 16 个整数列和少量文本列 它是只读表 因此每个整数列都有一个索引 每条记录大约 50 60 字节 表名称为 项目 服务器为 12 GB RAM 1 5 TB SATA 4 核 所有 postg
  • 如何在[关闭]下实现带点的画廊滑动

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 如何实现画廊下点滑动 我需要显示当前
  • HTML 内容提取的最新技术水平如何?

    有很多关于 HTML 内容提取的学术工作 例如 Gupta Kaiser 2005 从可访问的网页中提取内容 http citeseerx ist psu edu viewdoc summary doi 10 1 1 60 357 以及这里
  • 链接到 CMAKE 中的ExternalProject_add 依赖项

    我在运行 Ninja 时收到以下 ninja 构建错误 我的 CMAKE 构建命令是cmake G Ninja DCMAKE BUILD TYPE Release ninja error ext deps api src ext api b
  • Angular2:表中带有 *ngFor 的复选框

    我有一个 HTML 表 其中每行都有一个关联的复选框 默认情况下 最初会检查所有行
  • 以编程方式查找对象使用的内存

    有没有办法以编程方式准确确定 C 中对象使用的内存量 我不关心这个过程有多慢 所以左右运行 GC 是可以接受的 当然我更喜欢更高效的东西 序列化对象并查看结果长度似乎不太准确 在对此方法的简单测试中 我看到整数返回值 54 Using GC
  • 如何在 PHP 中使用 fetch() API POST 方法抓取数据?

    我正在尝试使用fetch API POST 方法以获取 PHP 中的 POST 数据 这是我尝试过的 var x hello fetch url method post body x then function response retur
  • Microsoft 的 strncat 读取超出源缓冲区边界的字节

    我观察到 Microsoft 实现中存在一个有趣的问题strncat 它超出了源缓冲区 1 个字节 考虑以下代码 include
  • 设置android相机发送灰度图像

    Android 相机可以通过编程方式设置为发送灰度图像吗 我不是在询问收到图像后的转换 而是在询问一种以编程方式设置它的方法 就像我们对 fps 分辨率等所做的那样 您是在谈论内置相机应用程序 通过意图 还是在您的应用程序内部 如果它是内置
  • 如何更改应用程序中使用的默认键盘的背景颜色?

    因此 我正在制作的应用程序需要使用较暗的键盘 否则内容和键盘之间的对比度太高 因此我需要更改与 EditText 交互时显示的键盘 我已经看了一下安卓软键盘 http developer android com resources samp
  • dplyr的arrange()使用什么排序算法?

    主要是出于好奇 我想知道 dplyr 的排列函数使用什么排序算法 我读到使用 R 的最常见的排序算法是选择排序 但我找不到有关range 的任何细节 我只是对排序算法有点兴趣 并且很好奇这个函数使用什么 我查看了排列函数的源代码 但我无法真
  • 如何推迟 Norton Secure Site Seal 的加载?

    我正在网站中显示 Norton Secure Site Seal 并且我想提高页面速度以推迟密封脚本的加载 我所做的所有尝试都失败了 我只找到了这个页面提到了这一点 link http www webpagetest org forums
  • 使用 C# 5 异步等待在多个游戏帧上执行的内容

    我儿子正在编写一个简单的 RPG 游戏 其中有许多非玩家角色 又名 NPC 每个 NPC 都有一个相关的 脚本 来控制其行为 我们将使用迷你自定义脚本语言来编写这些行为 但我现在想知道在 C 5 Async 中是否会更好 举一个非常简单的例
  • 如何将带有 formgroup 值的图像/文件上传到 API?

    当服务执行http post时 如何上传图像并将其添加到表单中 示例产品模块需要名称 价格 封面图片 我尝试使用许多可以从互联网 论坛等获得的方法 但对于这个问题仍然没有任何线索 我正在使用模型驱动的表单 并在选择图像时附加它 并且我尝试在
  • 正则表达式查找一行中最长的重复字符序列

    如何编写正则表达式来查找一行中最长的重复字符序列 通过正则表达式可以找到所有相关的字符序列 1 找到最长的此类序列最好使用正则表达式以外的工具来完成
  • SAPUI5 - Sap.m.RadioButton 值字段?

    sap m RadioButton已经只有Text属性并且没有Value属性 虽然我可以通过使用自定义数据来解决这个问题 但我是否遗漏了什么 sap ui commons RadioButton有一个key场地 另外 将值绑定到单选按钮组的
  • 为什么在 Java 中无法创建 MAX_INT 大小的数组?

    我读过这个问题的一些答案 为什么我无法创建大尺寸的数组 https stackoverflow com questions 31382531 why i cant create an array with large size and ht