Re: [問題] 請教一道GC題目
※ 引述《H45 (!H45)》之銘言:
: ※ 引述《LPH66 (ha(ruhi|yate)ism)》之銘言:
: : 看來我需要搞懂一件事
: : x到底是個reference還是它是個物件?
: : 如果x是個reference(我目前的觀念) 那就會有我的問題
: : 但如果x是個物件 那原來的答案就沒問題
: : (因為此時o=obj;變成物件copy 這個o和那個o就無關了)
: : 在C++裡面的話 x是個物件
: : 但這裡是java 而我剛剛測試的結果是像這樣宣告的成員是個reference
: 抱歉,我寫得太簡略了
: 原題目的class內有個member field是o
: 但是class內又有個member method內又宣告了另一個o
: 我設member field o參照的物件是x
: member method內的o參照的物件是y
: 而你所新增的member method是不會去access到另一個member method內所宣告的local
: variable, 所以它會印出x
: 我是這個意思
嗯, 我那是故意寫的
因為就是要看當時那個member variable到底是什麼
所以才再新增一個member method
現在的問題是這個member variable所參照的東西
由上一篇trace的
第七行完之後那個member variable o是指向第五行的物件的
因此此時第五行那個物件還是有人reference的 因此不能被GC
我寫那篇的意思就是 如果真是在第七行後就能被GC了
在第八行之前去存取那個指向已經被GC的東西到底會發生什麼事
不過jvm應該是不會把還被參照的東西GC掉 (也就是上面那件事不該發生)
所以我才說應該是在第八行執行完後
那個member variable已經不再指向第五行的物件時 那個物件才能被GC
--
◢ ˊ_▂▃▄▂_ˋ. ◣ ▅▅ ▅▅ ι●╮ █▄▄▄▄▄
▍./◤_▂▃▄▂_◥ \'▊ HARUHI █████ <■┘ ▄▄▄▄▄▄▄
▎⊿ ◤◤◥█◥◥█Δ ISM By-gamejye ¢|\ ▌▌▌▌▌▄▌▌
▏ζ(▏●‵◥′●▊)Ψ ▏ █ ⊿Δ ▄▄▄ ▄▄▄▄
█/|▊ 〃 、 〃▋ |\ ▎ ハルヒ主義 █▄▄▄█▄▄
◥◥|◣ ‵′ ◢/'◢◢S.O.S 世界を大いに盛り上げるための涼宮ハルヒの団
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 192.192.197.115
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 7 之 9 篇):