java - jvm中操作数栈的高位地址在上面还是下面
高洛峰
高洛峰 2017-04-18 10:50:18
0
2
712
  • 这是我在一篇文章中看到的图片。

  • 我百度查了下,内存中的栈,高位地址在上,每次压栈(int这类),都会将地址减去1个字节,然后将值放入栈。

  • 但是这张图,在对操作数栈做压栈操作的时候,却从底下往上放了。不知道是我理解错了,还是作者的一个失误。

  • 谢谢指点

高洛峰
高洛峰

拥有18年软件开发和IT教学经验。曾任多家上市公司技术总监、架构师、项目经理、高级软件工程师等职务。 网络人气名人讲师,...

全部回覆(2)
迷茫

我看了該文章的其他圖片,涉及到操作数栈的圖片,都是從下往上的

大家讲道理

首先,在堆疊裡面連續存入int a和int b,那麼b的記憶體位址一定比a的位址大4個位元組,而不是1個位元組!

至於大端模式還是小端模式,先從二進位說起,資料在堆疊內最小儲存單位為位元組,位元組內的儲存是固定的小端模式!

同樣一個十六進位資料0x3F00 在小端模式下儲存順序為00 3F,而在大端模式下儲存順序為3F 00。說穿了就是先儲存低位元的位元組還是先儲存高位元的位元組。

而java的儲存模式與計算機的cpu有關,但無論大端還是小端,存儲模式相反解析也是相反的,也就是說同樣一個int無論大端存儲還是小端存儲,計算的結果是一致的。

回答如有錯誤紕漏,請指正

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板