Re: [問題] 請教一道GC題目

看板java作者 (ha(ruhi|yate)ism)時間17年前 (2007/03/13 13:42), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串7/9 (看更多)
※ 引述《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
文章代碼(AID): #15zZdAa5 (java)
討論串 (同標題文章)
文章代碼(AID): #15zZdAa5 (java)