Re: [問題] JAVA創立物件與方法回傳值問題

看板java作者 (1597463007)時間10年前 (2014/05/10 23:26), 編輯推噓2(202)
留言4則, 3人參與, 最新討論串4/4 (看更多)
※ 引述《iammarsman ( )》之銘言: : 感謝板大的回覆~~ : 想請教一下關於第一種情況, : 小弟印象中當new了一個物件, : JVM會在heap中配置該物件所需的記憶體, : 如果有變數承接, 則會將該物件的記憶體位址傳給該變數, : 所以像這種沒有變數承接的情況, : 是否有可能會造成該記憶體區塊無法被參考到, : 進而導致系統效能低落呢? (GC似乎也是隔一段時間才會執行) 基本上這要看設計及用途 以推文的 new TaskThread.start() 來說 由於 (沒猜錯他的想法的話) 這東西是產生一個 Thread 並執行 那麼這個 Thread 物件本身會被系統 (精確地說是 JVM) 抓走 由它管理 類似的情形是這東西可能在底層會註冊到一個特定的地方 (例如一個視窗 class) 這種的話即使最後回來時沒有變數承接也無妨 因為它其實已經有被適當的管理機制給承接了 不需要使用者去管理它 如果不是這種情形的話 則確實它會在回來之後成為 GC 候選 不過倒不必擔心效能低落 JVM 會在它覺得該做 GC 的時候去做 GC 這個機制還沒有脆弱到被單單一個亂丟的物件給弄壞 XD 其實就算有接回來管理 最後用完時依然是以這種方式丟掉的 現有的 GC 機制本來就是應對這種方式設計 所以在這一點不必擔心就是了 -- 実琴:「河野!你真的就這樣被物質慾望給吸引過去了嗎?!」 亨:「只要穿著女裝擺出親切的樣子,所有必要花費就能全免,似乎一點都不壞啊。」 実琴:「難道你沒有男人的尊嚴了嗎?!」 亨:(斷然道)「沒有。在節衣縮食生活吃緊學生面前,沒有那種東西。」 --プリンセス・プリンセス 第二話 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 123.195.39.85 ※ 文章網址: http://www.ptt.cc/bbs/java/M.1399735587.A.240.html

05/10 23:35, , 1F
補:裡頭有東西被 reference 到,也不會被GC(應該沒記錯
05/10 23:35, 1F

05/10 23:48, , 2F
GC 通常是在空閒的時候 或是記憶體不足的時候執行
05/10 23:48, 2F

05/10 23:50, , 3F
如果太多垃圾物件造成GC不斷的話 的確是會影響效能
05/10 23:50, 3F

05/11 01:36, , 4F
謝謝大家的回覆, 感激不盡!!
05/11 01:36, 4F
文章代碼(AID): #1JRaKZ90 (java)
討論串 (同標題文章)
文章代碼(AID): #1JRaKZ90 (java)