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

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

Java 對象數組的內存模型是怎樣的?

Java 對象數組的內存模型是怎樣的?

海綿寶寶撒 2019-01-29 21:33:04
Java 引用類型數組內存模型,下面哪一種是正確的?對象數組的每個元素都會在棧內存中有一個引用嗎?看了兩個老師的教程,畫內存圖的時候有點不一樣相關代碼Person[] per = new Person[]{        new Person("A", 1),        new Person("B", 2),        new Person("C", 3)             };版本1:版本2:我個人覺得兩個都對,只是第一是簡化版,如果按我的理解,更傾向于版本2。只是有一點疑惑,數組存的是匿名對象,匿名對象會在棧中有引用嗎?
查看完整描述

2 回答

?
PIPIONE

TA貢獻1829條經驗 獲得超9個贊

1是對的,2是錯的。java對象在堆中分配,數組是對象,所以分配在堆中

查看完整回答
反對 回復 2019-01-29
?
慕斯王

TA貢獻1864條經驗 獲得超2個贊

圖一是正確的,棧里面不存在per[0],pr[1],per[2]這些引用,看一下

Person[] per = new Person[]{        new Person("A", 1),        new Person("B", 2),        new Person("C", 3)        
    };

這段代碼在局部變量表只占per一個槽數,locals=1,
可以使用javap -v看一下


查看完整回答
反對 回復 2019-01-29
  • 2 回答
  • 0 關注
  • 1401 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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