short[] foo = new short[45];
假设一个short占用2个字节并且该数组从地址5342开始,foo [24]占据哪个位置? 如果可能的话,请说明你如何计算并单独列出所有占用的地址。
这不是家庭作业,我问这个因为我真的不明白怎么做这个,如果我能看到解决方案这样我就可以学习
另外,这是我应该如何处理这个问题,5342 + 2 * 24
答案 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个字节