gpt4 book ai didi

Java对象和数组内存位置

转载 作者:行者123 更新时间:2023-11-29 06:46:57 25 4
gpt4 key购买 nike

我正在用 Java 编写一个支持数组的哈希表,其中键和值的类型是 Object;没有其他保证。

对我来说最简单的代码方式是创建一个对象来保存它们:

public class Pair { 
public Object key;
public Object value;
}

然后创建一个数组

public Pair[] storage = new Pair[8];

但是 jvm 如何在内存中处理它?也就是说,数组实际上会:

  • 是指向其他地方的 Pair() 对象的指针数组,或者
  • 包含实际数据?

编辑

由于对象稍后被实例化为 new Pair(),它们被随机放置在堆中。有什么好的方法可以确保它们在堆中是顺序的吗?我是否需要对 sun.misc.unsafe 做一些诡计才能让它发挥作用?

解释一下我的动机,如果我想尝试并确保顺序项在内存的同一页中,有什么办法可以在 Java 中做到这一点?

最佳答案

数组将是堆上的一个对象,包含指向 Pair 对象的指针,该对象也将在堆上(但与数组本身分开)。

关于Java对象和数组内存位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3444395/

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