代码读取和存储位置
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
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