java 板


LINE

※ 引述《tofuflower (無)》之銘言: : 請問下列三種寫法 : 1. : MyObject obj; : for(int i=0;i<10000000;i++) : { : obj=new MyObject(); : do something...... : } : 2. : for(int i=0;i<10000000;i++) : { : MyObject obj=new MyObject(); : do something...... : } : 3. : MyObject obj=new MyObject(); : for(int i=0;i<10000000;i++) : { : obj.init(); : do something...... : } : 其中3是我現在的寫法,但是obj.init()會花太多時間 : (比new一個新的MyObject還花時間) 聽起來只是設計不當。 : 所以想請問1和2這兩種寫法那種比較好? 就效率來說,1 跟 2 完全感受不到差別。 撇開效率不談, 如果 obj 在回圈之外完全用不到, 我會認為宣告在迴圈之內是較好的, 差別在迴圈外是否多一個沒有用的變數, 可能會造成誤用或閱讀上的困擾。 : 2我的議題是這樣每次都宣告一個新的obj,那上一個obj memory會回收嗎? : 如果會是甚麼時候回收? : ps.一開始用過2的寫法,但曾經出現過java heap size的問題... : 感覺就是一直宣告MyObject obj=new MyObject()把記憶體塞爆? 你似乎不知道有 Garbage Collection(GC) 這東西。 簡單的說,GC 會幫你做回收的動作, 只要你把指向物件的 refrence 都都拿掉, 待 GC 運作後,物件就會被回收。 你並不知道他什麼時候去做,也不能指定他立刻去做, 但大部分的情況下,我認為 GC 都運作的很不錯。 在你的例子當中, 大概是因為物件產生的速度高於回收的速度, 所以最後當然會爆掉。 如果你的需求真的必須如此, 也許可以在迴圈裡頭放個 System.gc() "建議" GC 去做事。 : 1我的議題是雖然只宣告一次obj : 但之後也是每次都分給他一個新的memory空間...? : 和2的寫法比好像一樣? : 總之我不太了解java在甚麼時候會回收不用的記憶體? : 而怎樣的情況下該變數的記憶體會被認定為不在使用可以回收的? 你無法控制物件何時會被回收, 但只有當物件被有被 refrence 時,該物件才有可能被回收。 : 煩請有經驗的版友指教 : 或者有人有推薦的書即可以介紹一下的 : 感謝 orz... 找些說明 GC 的文章來看吧,光看我說的實在是不夠。 --



※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.114.78.231
1F:推 tofuflower:我知道GC,只是不知道系統call GC的時機為何? 04/08 00:12







like.gif 您可能會有興趣的文章
icon.png[問題/行為] 貓晚上進房間會不會有憋尿問題
icon.pngRe: [閒聊] 選了錯誤的女孩成為魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一張
icon.png[心得] EMS高領長版毛衣.墨小樓MC1002
icon.png[分享] 丹龍隔熱紙GE55+33+22
icon.png[問題] 清洗洗衣機
icon.png[尋物] 窗台下的空間
icon.png[閒聊] 双極の女神1 木魔爵
icon.png[售車] 新竹 1997 march 1297cc 白色 四門
icon.png[討論] 能從照片感受到攝影者心情嗎
icon.png[狂賀] 賀賀賀賀 賀!島村卯月!總選舉NO.1
icon.png[難過] 羨慕白皮膚的女生
icon.png閱讀文章
icon.png[黑特]
icon.png[問題] SBK S1安裝於安全帽位置
icon.png[分享] 舊woo100絕版開箱!!
icon.pngRe: [無言] 關於小包衛生紙
icon.png[開箱] E5-2683V3 RX480Strix 快睿C1 簡單測試
icon.png[心得] 蒼の海賊龍 地獄 執行者16PT
icon.png[售車] 1999年Virage iO 1.8EXi
icon.png[心得] 挑戰33 LV10 獅子座pt solo
icon.png[閒聊] 手把手教你不被桶之新手主購教學
icon.png[分享] Civic Type R 量產版官方照無預警流出
icon.png[售車] Golf 4 2.0 銀色 自排
icon.png[出售] Graco提籃汽座(有底座)2000元誠可議
icon.png[問題] 請問補牙材質掉了還能再補嗎?(台中半年內
icon.png[問題] 44th 單曲 生寫竟然都給重複的啊啊!
icon.png[心得] 華南紅卡/icash 核卡
icon.png[問題] 拔牙矯正這樣正常嗎
icon.png[贈送] 老莫高業 初業 102年版
icon.png[情報] 三大行動支付 本季掀戰火
icon.png[寶寶] 博客來Amos水蠟筆5/1特價五折
icon.pngRe: [心得] 新鮮人一些面試分享
icon.png[心得] 蒼の海賊龍 地獄 麒麟25PT
icon.pngRe: [閒聊] (君の名は。雷慎入) 君名二創漫畫翻譯
icon.pngRe: [閒聊] OGN中場影片:失蹤人口局 (英文字幕)
icon.png[問題] 台灣大哥大4G訊號差
icon.png[出售] [全國]全新千尋侘草LED燈, 水草

請輸入看板名稱,例如:e-shopping站內搜尋

TOP