亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

java內存模型和jvm運行時數據區對應起來談的疑惑

java內存模型和jvm運行時數據區對應起來談的疑惑

慕婉清6462132 2018-07-17 10:14:21
在java內存模型中有工作內存和主內存,主內存是所有線程共享的內存區域,規定變量都必須存儲在主內存中。但是在jvm運行時數據區中,又談到所有局部變量都存儲在棧中,而棧又是線程私有的,對應到內存模型中就是工作內存。相應主內存對應的就是運行時數據區的堆。這不就產生了矛盾嗎?**對與局部變量到底是按照內存模型來說存儲在主內存中,還是棧中呢?**
查看完整描述

2 回答

?
開心每一天1111

TA貢獻1836條經驗 獲得超13個贊

局部變量是放到jvm棧中的,全局變量應該在主內存中。


查看完整回答
反對 回復 2018-08-08
?
HUX布斯

TA貢獻1876條經驗 獲得超6個贊

jvm內存模型和java內存模型是兩回事。 java內存模型是為了解決多線程對共享數據訪問保持一致性,即規定了jvm怎么協調虛擬內存和主內存關系

對于JMM與JVM本身的內存模型,參照《深入理解Java虛擬機》周志明的解釋,這兩者本沒有關系。如果一定要勉強對應,那從變量、主內存、工作內存的定義來看,主內存主要對應于Java堆中的對象實例數據部分,而工作內存則對應于虛擬機棧中的部分區域,。從更低層次上說,主內存就是物理內存,而為了獲取更好的執行速度,虛擬機(甚至是硬件系統本身的優化措施)可能會讓工作內存優先存儲于寄存器和高速緩存中,因為運行時主要訪問—讀寫的是工作內存


查看完整回答
反對 回復 2018-08-08
  • 2 回答
  • 0 關注
  • 787 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號