文章詳情頁
java - jvm中操作數(shù)棧的高位地址在上面還是下面
瀏覽:201日期:2024-01-25 11:58:43
問題描述
這是我在一篇文章中看到的圖片。
我百度查了下,內(nèi)存中的棧,高位地址在上,每次壓棧(int這類),都會將地址減去1個字節(jié),然后將值放入棧。
但是這張圖,在對操作數(shù)棧做壓棧操作的時候,卻從底下往上放了。不知道是我理解錯了,還是作者的一個失誤。
謝謝指點(diǎn)

問題解答
回答1:我看了該文章的其他圖片,涉及到操作數(shù)棧的圖片,都是從下往上的
回答2:首先,在棧里面連續(xù)存入int a和int b,那么b的內(nèi)存地址一定比a的地址大4個字節(jié),而不是1個字節(jié)!
至于大端模式還是小端模式,先從二進(jìn)制說起,數(shù)據(jù)在棧內(nèi)最小存儲單位為字節(jié),字節(jié)內(nèi)的存儲是固定的小端模式!
同樣一個十六進(jìn)制數(shù)據(jù)0x3F00 在小端模式下存儲順序?yàn)?0 3F,而在大端模式下存儲順序?yàn)?F 00。說白了就是先存儲低位的字節(jié)還是先存儲高位的字節(jié)。
而java的存儲模式與計算機(jī)的cpu有關(guān),但無論大端還是小端,存儲模式相反解析也是相反的,也就是說同樣一個int無論大端存儲還是小端存儲,計算的結(jié)果是一致的。
回答如有錯誤紕漏,請指正
標(biāo)簽:
java
相關(guān)文章:
1. 關(guān)docker hub上有些鏡像的tag被標(biāo)記““This image has vulnerabilities””2. docker鏡像push報錯3. Docker for Mac 創(chuàng)建的dnsmasq容器連不上/不工作的問題4. javascript - 在 model里定義的 引用表模型時,model為undefined。5. 利用IPMI遠(yuǎn)程安裝centos報錯!6. node.js - mongodb查找子對象的名稱為某個值的對象的方法7. 運(yùn)行python程序時出現(xiàn)“應(yīng)用程序發(fā)生異常”的內(nèi)存錯誤?8. html5和Flash對抗是什么情況?9. phpstudy8.1沒集成mysql-front10. 前端 - @media query 使用出現(xiàn)的問題?
排行榜

熱門標(biāo)簽
網(wǎng)公網(wǎng)安備