JWorld@TW the best professional Java site in Taiwan
      註冊 | 登入 | 全文檢索 | 排行榜  

» JWorld@TW » Java SE 討論區  

按列印兼容模式列印這個話題 列印話題    把這個話題寄給朋友 寄給朋友   
reply to postflat modego to previous topicgo to next topic
本主題所含的標籤
無標籤
作者 Re:關於gc的問題?!請指教!thanks~ [Re:ymshin]
Duncan

還隱隱作痛

版主

發文: 7816
積分: 39
於 2003-07-27 14:39 user profilesend a private message to usersend email to Duncanreply to postreply to postsearch all posts byselect and copy to clipboard. 
ie only, sorry for netscape users:-)add this post to my favorite list
ymshin wrote:
依照您敘述的步驟, 第三行也就是爭議之處. 照我以及所看資料所寫的, c[0] 是
將 reference variable 中的 reference point to b, 而 b 是 point to new t()
的所在位址, 所以 new t() 這個 object 在 b 這個 reference variable 改 point
to null 之後沒有被其它 reference variable refer 到, 也就成了 JVM 需要
collect memory 時的候選人(也就是 eligible for garbage collection 的意思).

假設如您所說, c[0] = b 其實是將 b 中的 reference copy 到 c[0], 這裡就有
先前所說的問題 -> 所有 reference 都只能是 strong reference, 這與事實不
符.

接下來, 對 null 的動作可能有誤解(也可能是我先前的解釋不清楚), null 可以是
reference type, 當一個 refernce point to null 時也就是告訴 JVM 這個
reference points to no object, 原先 point to 的 object 如果沒有被其它
strong reference 指到的話, 隨時可以被 garbage collection 回收. 我不清楚
為什麼您的測試第五行會出錯, 我跟著作並沒有問題, 反而是第六行的邏輯有問
題, compiler 也看不懂, 可以請您有空時再解釋一下嗎?


容我冒昧地說一句話, 我覺得有人已經陷入牛角尖裡了, Yoshi 講的觀念很正確也很清楚, 可我一直覺得似乎有人一直不肯接受.

請各位先把 lvalue/rvalue 搞清楚, lvalue 指的是一個變數的 address value, 可以寫在 operator= 左邊的, 表示可以取得其位置, 在此位置上寫入 data;而 rvalue 指的是 data value, 當一個 variable 寫在 = 右邊, var name 代表的是其所儲存的 data, 跟變數本身(的位置)無關.
1
c[0] = b;


此一 statement 的意義是, 把 b 所含有的 data(也就是某個 object 的 reference/handle) 複製給 c[0] 位置上的空間, 在此 statement 之後, b 的 data 如何變化和 c[0] 是沒有關聯的, 因為 b 的 rvalue 和 b 本身的 address 沒有關聯, c[0] 只是紀錄 b 的 data, 並沒有和 b 的所在位置有關係, 自然無法一直 trace b 的變化(c[0] 在這裡是 lvalue, 有 address 的涵義在裡頭, 但如果 c[0] 出現在 = 右邊就成了 rvalue, 同樣只代表 c[0] 這個位置上(cell) 所紀錄的 data).

如果答案真的是 B, Java 可以拿去丟了. 任何紀錄在 field 的 object 是不是隨時都會莫名其妙被回收, 那麼 Java program 隨時都會出槌.


Duncan edited on 2003-07-27 19:06
reply to postreply to post

給我
辣味豆腐 其餘免談
話題樹型展開
人氣 標題 作者 字數 發文時間
15675 [精華] 關於gc的問題?!請指教!thanks~ cflute 749 2003-07-26 17:27
14277 Re:關於gc的問題?!請指教!thanks~ worookie 23 2003-07-26 17:31
14383 Re:關於gc的問題?!請指教!thanks~ marty 67 2003-07-26 18:18
17252 Re:關於gc的問題?!請指教!thanks~ worookie 3813 2003-07-31 11:15
14996 Re:關於gc的問題?!請指教!thanks~ Duncan 954 2003-07-31 13:36
13619 Re:關於gc的問題?!請指教!thanks~ Yoshi 759 2003-07-31 18:35
13872 Re:關於gc的問題?!請指教!thanks~ ymshin 144 2003-07-26 17:42
13993 Re:關於gc的問題?!請指教!thanks~ Biologic 427 2003-07-26 18:25
13665 Re:關於gc的問題?!請指教!thanks~ ymshin 325 2003-07-26 18:36
13797 Re:關於gc的問題?!請指教!thanks~ Biologic 682 2003-07-26 18:49
13903 Re:關於gc的問題?!請指教!thanks~ Biologic 863 2003-07-26 18:51
13725 Re:關於gc的問題?!請指教!thanks~ Yoshi 648 2003-07-26 18:56
13613 Re:關於gc的問題?!請指教!thanks~ cflute 365 2003-07-26 19:08
13661 Re:關於gc的問題?!請指教!thanks~ Yoshi 485 2003-07-26 19:14
13573 Re:關於gc的問題?!請指教!thanks~ ymshin 980 2003-07-26 19:57
13581 Re:關於gc的問題?!請指教!thanks~ JiaYun 390 2003-07-26 20:18
13569 Re:關於gc的問題?!請指教!thanks~ ymshin 224 2003-07-26 20:23
13524 Re:關於gc的問題?!請指教!thanks~ JiaYun 96 2003-07-26 20:29
13514 Re:關於gc的問題?!請指教!thanks~ ymshin 237 2003-07-26 20:46
13991 Re:關於gc的問題?!請指教!thanks~ marty 459 2003-07-26 20:58
13546 Re:關於gc的問題?!請指教!thanks~ Biologic 501 2003-07-26 20:53
13494 Re:關於gc的問題?!請指教!thanks~ JiaYun 113 2003-07-26 20:54
13581 Re:關於gc的問題?!請指教!thanks~ Biologic 138 2003-07-26 21:16
13538 Re:關於gc的問題?!請指教!thanks~ Forth 23 2003-07-26 21:03
13514 Re:關於gc的問題?!請指教!thanks~ Biologic 127 2003-07-26 21:08
13518 Re:關於gc的問題?!請指教!thanks~ Yoshi 591 2003-07-26 22:44
13477 Re:關於gc的問題?!請指教!thanks~ Biologic 245 2003-07-26 23:42
13731 Re:關於gc的問題?!請指教!thanks~ ymshin 3174 2003-07-27 01:41
14062 Re:關於gc的問題?!請指教!thanks~ Yoshi 2196 2003-07-27 03:15
13693 Re:關於gc的問題?!請指教!thanks~ ymshin 3361 2003-07-27 08:14
14980 Re:關於gc的問題?!請指教!thanks~ Duncan 1450 2003-07-27 14:39
13349 Re:關於gc的問題?!請指教!thanks~ ymshin 626 2003-07-27 10:48
11861 Re:關於gc的問題?!請指教!thanks~ peipei36 800 2005-09-25 00:51
13600 Re:關於gc的問題?!請指教!thanks~ cflute 162 2003-07-26 18:17
13576 Re:關於gc的問題?!請指教!thanks~ ymshin 326 2003-07-26 18:26
13572 Re:關於gc的問題?!請指教!thanks~ Yoshi 295 2003-07-26 18:32
13492 Re:關於gc的問題?!請指教!thanks~ cflute 90 2003-07-26 18:22
14186 Re:關於gc的問題?!請指教!thanks~ Yoshi 703 2003-07-26 18:30
13883 Re:關於gc的問題?!請指教!thanks~ marty 172 2003-07-26 18:27
16045 Re:關於gc的問題?!請指教!thanks~ Duncan 54 2003-07-26 22:17
13316 Re:關於gc的問題?!請指教!thanks~ ymshin 947 2003-07-27 19:07
14320 Re:關於gc的問題?!請指教!thanks~ Duncan 730 2003-07-27 19:33
13360 Re:關於gc的問題?!請指教!thanks~ ymshin 879 2003-07-27 20:01
13885 Re:關於gc的問題?!請指教!thanks~ saijone 1031 2003-07-31 10:13
13596 Re:關於gc的問題?!請指教!thanks~ popcorny 776 2003-07-31 10:29
13195 Re:關於gc的問題?!請指教!thanks~ saijone 128 2003-07-31 10:42
13293 Re:關於gc的問題?!請指教!thanks~ popcorny 259 2003-07-31 10:54
13541 Re:關於gc的問題?!請指教!thanks~ saijone 567 2003-07-31 11:12
» JWorld@TW »  Java SE 討論區

reply to postflat modego to previous topicgo to next topic
  已讀文章
  新的文章
  被刪除的文章
Jump to the top of page

JWorld@TW 本站商標資訊

Powered by Powerful JuteForum® Version Jute 1.5.8