文章詳情頁
java - jvm中操作數(shù)棧的高位地址在上面還是下面
瀏覽:121日期:2024-01-25 11:58:43
問題描述
這是我在一篇文章中看到的圖片。
我百度查了下,內(nèi)存中的棧,高位地址在上,每次壓棧(int這類),都會將地址減去1個字節(jié),然后將值放入棧。
但是這張圖,在對操作數(shù)棧做壓棧操作的時候,卻從底下往上放了。不知道是我理解錯了,還是作者的一個失誤。
謝謝指點
問題解答
回答1:我看了該文章的其他圖片,涉及到操作數(shù)棧的圖片,都是從下往上的
回答2:首先,在棧里面連續(xù)存入int a和int b,那么b的內(nèi)存地址一定比a的地址大4個字節(jié),而不是1個字節(jié)!
至于大端模式還是小端模式,先從二進制說起,數(shù)據(jù)在棧內(nèi)最小存儲單位為字節(jié),字節(jié)內(nèi)的存儲是固定的小端模式!
同樣一個十六進制數(shù)據(jù)0x3F00 在小端模式下存儲順序為00 3F,而在大端模式下存儲順序為3F 00。說白了就是先存儲低位的字節(jié)還是先存儲高位的字節(jié)。
而java的存儲模式與計算機的cpu有關(guān),但無論大端還是小端,存儲模式相反解析也是相反的,也就是說同樣一個int無論大端存儲還是小端存儲,計算的結(jié)果是一致的。
回答如有錯誤紕漏,請指正
標(biāo)簽:
java
相關(guān)文章:
1. 查詢mysql數(shù)據(jù)庫中指定表指定日期的數(shù)據(jù)?有詳細(xì)2. mysql - 怎么生成這個sql表?3. mysql儲存json錯誤4. php - 公眾號文章底部的小程序二維碼如何統(tǒng)計?5. mysql - 表名稱前綴到底有啥用?6. mysql - 數(shù)據(jù)庫表中,兩個表互為外鍵參考如何解決7. Navicat for mysql 中以json格式儲存的數(shù)據(jù)存在大量反斜杠,如何去除?8. 在mybatis使用mysql的ON DUPLICATE KEY UPDATE語法實現(xiàn)存在即更新應(yīng)該使用哪個標(biāo)簽?9. mysql - 數(shù)據(jù)庫建字段,默認(rèn)值空和empty string有什么區(qū)別 11010. sql語句 - 如何在mysql中批量添加用戶?
排行榜

熱門標(biāo)簽