这是我在一篇文章中看到的图片。
我百度查了下,内存中的栈,高位地址在上
,每次压栈(int这类),都会将地址减去1个字节,然后将值放入栈。
但是这张图,在对操作数栈
做压栈操作的时候,却从底下往上放了
。不知道是我理解错了,还是作者的一个失误。
谢谢指点
大家讲道理2017-04-18 10:52:18
首先,在堆疊裡面連續存入int a和int b,那麼b的記憶體位址一定比a的位址大4個位元組,而不是1個位元組!
至於大端模式還是小端模式,先從二進位說起,資料在堆疊內最小儲存單位為位元組,位元組內的儲存是固定的小端模式!
同樣一個十六進位資料0x3F00 在小端模式下儲存順序為00 3F,而在大端模式下儲存順序為3F 00。說穿了就是先儲存低位元的位元組還是先儲存高位元的位元組。
而java的儲存模式與計算機的cpu有關,但無論大端還是小端,存儲模式相反解析也是相反的,也就是說同樣一個int無論大端存儲還是小端存儲,計算的結果是一致的。
回答如有錯誤紕漏,請指正