2010-06-18 33 views
0

我的問題在代碼Android ==> Mmory管理問題?

ImageView img = new ImageView(); 
this.layout.addView(img); 
MyObject o = new Object(img); 
// Do i need to set img to null? 

ArrayList <MyObject> myArray = new ArrayList <MyObject>(); 
MyObject obj = new MyObject(); 
myArray.add(obj); 
// Do i need to set obj to null? 

回答

1

爲什麼你需要將它設置爲NULL的評論?

如果您擔心垃圾收集,只要局部變量被重新分配或超出範圍,引用就不復存在。 (這不是那麼簡單,但這是一般想法。)

+0

我剛剛從目標c(iphone開發) 切換在目標c在這兩種情況下,如果我不釋放我提到的對象(或設置他們爲空)我會得到一個內存泄漏。 我只是想確定一下,那不適用於java。 還有一件事,每10秒調用一次垃圾收集器是個好主意嗎? 謝謝 – aryaxt 2010-06-18 21:18:39

+1

不,你永遠不需要調用垃圾回收器。它在後臺獨立運作。 – 2010-06-18 21:35:18

+1

您可能會發現有用的鏈接,http://www.ibm.com/developerworks/java/library/j-jtp01274.html有很好的解釋,爲什麼設置爲null可能會很糟糕。 http://chaoticjava.com/posts/how-does-garbage-collection-work/如果你感興趣的話,這是一篇關於垃圾收集如何工作的好帖子。 – 2010-06-18 22:01:31

0

關於內存,Android的性能,您可以在這裏找到很多有用的提示(Designing for Performance。)。當然,你不需要在你的代碼中設置變量爲空