代码读取和内存位置

时间:2015-03-09 08:17:08

标签: java arrays location

short[] foo = new short[45];

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

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

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

2 个答案:

答案 0 :(得分:0)

尝试此操作以获取参考地址:Is there a way to get a reference address?

5342 + 2 * 24的方法听起来不太有希望,因为Java数组在虚拟内存中是顺序的,不一定在物理内存中Java Array Memory Location

答案 1 :(得分:0)

在与朋友合作之后,我能够弄清楚该怎么做。

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

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

b,数组的基址:5342

i,元素地址:24

s,大小以字节为单位:2

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

位置foo [24]占用(占用所有地址)5390(1字节)到5391(1字节)==> 2个字节