内存是连续分配给数组列表的吗?

2023-12-07

当我们使用new ArrayList()内存是连续分配的吗? 如果我们打电话list.add(e)10次​​,所有元素是按add顺序连续存储在内存中,还是随机存储在内存中?


首先,您需要了解 ArrayList 的工作原理。它将“引用”或“指针”存储到内部对象数组中的实际存储elementData。该引用数组很可能是连续的,但是是 JVM 特定的。实际添加的对象存储在堆上,并且几乎肯定不会是连续的,尽管这是 JVM 特定的。

elementData[0] ===> object 1
elementData[1] ===> object 2
elementData[2] ===> object 3
...

其次,您提到多次调用 add()...当 ArrayList 内部 elementData 不再足够大时,它将其大小调整为更大的大小,+50% IIRC,并复制所有参考对于新的 elementData,实际对象不会移动。

最后,连续内存通常是高性能本机应用程序关注的问题。在 Java 中,内存由 JVM 管理,并从底层操作系统借用,进而从硬件甚至虚拟化硬件借用。

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

内存是连续分配给数组列表的吗? 的相关文章

随机推荐

  • z3 处理非线性实数运算的局限性

    我有一个程序可以生成非线性实数算术中的一组约束 考虑以下两个约束 gt v0 x v2 x v1 y v2 y v3 x v2 x v3 x v2 x v3 y v2 y v3 y v2 y v0 y v2 y v3 x v2 x v1 x
  • 是否可以禁用链接的工具提示?

    我的链接上没有设置任何标题或 alt 标签 因此当我悬停或单击并按住链接时 IE10 会使用 href 内容作为工具提示 我一直在四处寻找 但找不到任何覆盖此功能的解决方案 Update 我已经找到了解决我遇到的另一个问题的方法 当你触摸并
  • Node.js 套接字解释

    我正在构建一个应用程序 它将对远程 API 服务器进行大约一百万次调用 我可以将连接数量限制为例如 10 个吗 我将最大套接字设置为 10 可以吗 我试图了解这些参数的作用 keepAlive false maxSockets 999 ma
  • Google Analytics - 将 UserID 与我网站的帐户 ID 相匹配

    我的每个注册客户都有唯一的帐户 ID 例如 代理人编号 00173393 我想检索此信息通过谷歌分析 这不是个人信息 仅供统计使用 我实现了 userID 但是如何匹配用户 ID 和帐户 ID 是否可以为帐户 ID 号创建变量 你为什么不使
  • 十二要素应用程序:与配置指南保持一致的方法

    我正在写一篇关于十二因素应用程序的论文 我想知道你是否可以在这里帮助我 十二要素应用程序的第三要素指出 在环境中存储配置 https 12factor net config 根据该页面 部署之间可能有所不同的所有配置都应提取到环境变量中 我
  • X 轴日期 - .Net 图表

    我正在 Net Charts 工作 我想在 X 轴上显示日期 例如 如果我选择过去 52 周 那么我应该显示过去 52 周的图表 而这 52 周的开始日期应该位于 x 轴上 我不知道如何做到这一点 我尝试过使用代码 DateTime Frm
  • [97,98].map(String.fromCharCode) 的奇怪输出

    这按预期工作 97 98 map function x String fromCharCode x a b 但以下行的输出是意外的 97 98 map String fromCharCode a u0000 u0000 b u0001 u0
  • TFS 2010 API DLL Microsoft.TeamFoundation.Framework.Server.dll 在哪里?

    需要这个DLL来引用相应的命名空间Microsoft TeamFoundation Framework Server 此 DLL 似乎不包含在 Visual Studio 2010 Team Explorer 或 Visual Studio
  • 具有多对多关联的模型的计数器缓存

    我有一个Post and a Tag模型与一个many to many协会 post rb class Post lt ActiveRecord Base attr accessible title content tag names ha
  • NumPy 中 MATLAB 的repmat 的等价物是什么

    我想使用 NumPy 执行与以下 MATLAB 代码等效的内容 repmat 1 1 1 1 1 我将如何实现这个目标 这是一个更好的 官方 面向 Matlab 用户的 NumPy链接 恐怕 mathesaurus 已经过时了 numpy
  • 将密码存储在 cookie 中安全吗?

    我的网络应用程序的主页有一个记住账号复选框 如果用户检查它 我会将电子邮件 ID 和密码存储在 cookie 中 这是我的代码 if this ChkRememberme null this ChkRememberme Checked tr
  • 如何在 C# 应用程序中通过 EF 生成存储过程作为异步方法?

    我有一堆 SP 用于从我的 C 控制台应用程序进行调用 因此 我使用 EF 数据库优先 方法 这对我来说相当方便 因为 EF 自己生成 SP 调用代码 我不介意编写像 EXEC sp 这样的 sql 代码 包装我的参数等 唯一的问题是下一个
  • 如何查找 ionic zip 文件的未压缩大小

    我有一个使用压缩的 zip 文件离子拉链 在提取之前 我需要验证可用的磁盘空间 但是我如何预先找到未压缩的大小呢 zip 文件 由 ionic 提供 中是否有任何标头信息以便我可以阅读 这应该可以解决问题 Option 1 static l
  • 在像 Instagram 这样的表格视图中使用多个 AVPlayer

    我正在尝试在 tableview 单元格的每一行中实现 AVPlayer 但我没有找到任何好的文档 我想要一个像 Instagram 一样的时间线 但我不知道如何处理内部的多个玩家和点击手势 知道在哪里可以找到一些吗 我建议不要让所有单元格
  • 从 Spring 应用程序中删除 JSESSIONID cookie

    我有一个无状态的 Spring 应用程序 所以我没有使用会话 我想禁用与会话有关的所有内容 我有一个 context xml Tomcat 配置 我在其中添加了以下内容
  • 如何注释自定义类型 __iter__ 以正确指示非统一返回类型?

    我有一个自定义类型 我想启用它的值解包 元组解包等 我知道在 Python 中执行此操作的最简单方法是实现 iter 这在运行时效果很好 但我想提供类型注释 以便为每个项目返回正确的类型 例如 import typing as t from
  • 在 Apache Spark 中,RandomForestClassifier 的输入带有无效标签列错误

    我正在尝试使用 SCALA 中的随机森林分类器模型使用 5 倍交叉验证来找到准确性 但我在运行时收到以下错误 java lang IllegalArgumentException RandomForestClassifier 的输入带有无效
  • jquery 中 $('selector') 和 $('selector')[0] 之间的区别

    假设我有一个 div class test style width 200px div 请考虑以下事项 var m test 0 var md m console log md width 200 var o test console lo
  • Chrome 扩展程序中出现“拒绝加载脚本”错误

    有很多与此类似的问题 但没有一个解决了我的目的 我正在创建一个类似 chrome 扩展的 pinterest 它将脚本注入网页 收集图像 然后将其发布到某个地方 一切都工作正常 但是当我在 pinterest 本身上运行它时 它给了我这个错
  • 内存是连续分配给数组列表的吗?

    当我们使用new ArrayList 内存是连续分配的吗 如果我们打电话list add e 10次 所有元素是按add顺序连续存储在内存中 还是随机存储在内存中 首先 您需要了解 ArrayList 的工作原理 它将 引用 或 指针 存储