文章詳情頁
java - jvm中操作數棧的高位地址在上面還是下面
瀏覽:114日期:2024-01-25 11:58:43
問題描述
這是我在一篇文章中看到的圖片。
我百度查了下,內存中的棧,高位地址在上,每次壓棧(int這類),都會將地址減去1個字節,然后將值放入棧。
但是這張圖,在對操作數棧做壓棧操作的時候,卻從底下往上放了。不知道是我理解錯了,還是作者的一個失誤。
謝謝指點
問題解答
回答1:我看了該文章的其他圖片,涉及到操作數棧的圖片,都是從下往上的
回答2:首先,在棧里面連續存入int a和int b,那么b的內存地址一定比a的地址大4個字節,而不是1個字節!
至于大端模式還是小端模式,先從二進制說起,數據在棧內最小存儲單位為字節,字節內的存儲是固定的小端模式!
同樣一個十六進制數據0x3F00 在小端模式下存儲順序為00 3F,而在大端模式下存儲順序為3F 00。說白了就是先存儲低位的字節還是先存儲高位的字節。
而java的存儲模式與計算機的cpu有關,但無論大端還是小端,存儲模式相反解析也是相反的,也就是說同樣一個int無論大端存儲還是小端存儲,計算的結果是一致的。
回答如有錯誤紕漏,請指正
標簽:
java
相關文章:
1. angular.js - angularjs如何傳遞id給另一個視圖 根據id獲取json數據?2. 數據庫無法進入3. java - StringBuffer轉成String,可以不同過tostring,而是通過+“”的方式轉換嗎?4. 使用text-shadow可以給圖片加陰影嗎?5. mysql - 記得以前在哪里看過一個估算時間的網站6. docker images顯示的鏡像過多,狗眼被亮瞎了,怎么辦?7. 請問一下各位老鳥 我一直在學習獨孤九賤 現在是在tp5 今天發現 這個系列視頻沒有實戰8. boot2docker無法啟動9. select - mysql怎么搜索一個字符串指定位置之后兩位10. python - linux怎么在每天的凌晨2點執行一次這個log.py文件
排行榜
