【问题标题】:Code reading and memory locations代码读取和内存位置
【发布时间】:2015-05-10 08:22:33
【问题描述】:
short[] foo = new short[45];

假设一个 short 占用 2 个字节并且数组从地址 5342 开始, foo[24] 占用哪些位置? 如果可能,请说明您是如何计算的,并单独列出所有占用的地址。

这不是作业,我问这个是因为我真的不明白该怎么做,如果我能看到解决方案这样我就可以学习了,那就太好了

另外,我应该如何处理这个问题,5342+2*24

【问题讨论】:

  • 您能解释一下您希望通过这些信息实现什么目标吗?请记住,数组是对象 - 所以还有类型信息、同步监视器和长度......

标签: java arrays location


【解决方案1】:

与朋友一起工作后,我能够弄清楚该怎么做。

起始地址:5342 short 占用 2 个字节

==> 起始地址 = b+i*s

b、数组基址:5342

i,元素地址:24

s,字节大小:2

==>起始地址:5342 + (24)*2 = 5390

location foo[24]占用(ALL address占用)5390(1字节)到5391(1字节)==>2字节

【讨论】:

    【解决方案2】:

    试试这个获取参考地址:Is there a way to get a reference address?

    您的 5342+2*24 方法对我来说听起来并不乐观,因为 Java 数组在虚拟内存中是连续的,不一定在物理内存中Java Array Memory Location

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-09-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-06-03
      • 2012-10-02
      相关资源
      最近更新 更多