代码读取和存储位置

Code reading and memory locations

short[] foo = new short[45];

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

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

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

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

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

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

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

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

b,数组基地址:5342

i,元素地址:24

s,字节大小:2

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

location foo[24] occupied (ALL address occupied) 5390 (1 byte) to 5391 (1 byte) ==> 2 bytes