是否有任何垃圾收集對象的方法?據我所知finalize()
之前被調用,如果任何對象將被垃圾收集。在Java中垃圾收集對象的方法
0
A
回答
3
有一種方法System.gc();
它只是給提示垃圾收集器垃圾對象。但是,不,沒有任何方法可以調用,並立即收集垃圾。
6
4
是否有任何垃圾收集對象的方法?
沒有沒有。
對象將(可能)在變得「無法訪問」後被垃圾收集。通過調用System.gc()
可能導致垃圾收集器在特定時間運行。然而。允許JVM忽略您的System.gc()
調用,並且在錯誤的時間運行GC會浪費資源。
事實上,呼籲System.gc()
收回單個對象是可怕效率低,而且不一定會收回它無論如何,即使這是在這一點上的垃圾。
這是一個錯誤的Java應用程序依賴的對象是在特定時間收集垃圾,或在特定的時間中運行終結。如果您的應用程序設計爲以這種方式工作,則應重新設計它。
1
您可以檢查this reply它展示瞭如何確保GC對從jlibs使用RuntimeUtil.gc()堆的一些片段至少運行:
/**
* This method guarantees that garbage collection is
* done unlike <code>{@link System#gc()}</code>
*/
public static void gc() {
Object obj = new Object();
WeakReference ref = new WeakReference<Object>(obj);
obj = null;
while(ref.get() != null) {
System.gc();
}
}
您可以使用類似的技術來取代obj引用你想要的對象gc。
注意:如果GC從不運行並收集新分配的對象,該方法將陷入無限循環。
2
你不應該依靠System.gc();
與圖像。
以下示例將收集對象垃圾回收。
bitmap.recycle();
bitmap = null;`
注:System.gc();
明顯減慢了應用上的一些設備。
相關問題
- 1. 垃圾收集對象
- 2. Java垃圾收集和大對象
- 3. Java垃圾收集算法
- 4. Java垃圾收集器方法
- 5. 方法和垃圾收集
- 6. 垃圾收集java
- 7. Java垃圾收集
- 8. Java垃圾收集
- 9. 辛格爾頓在Java中對象的集合,垃圾收集
- 10. 垃圾收集在產量的方法
- 11. 的Java newSingleThreadExecutor垃圾收集
- 12. Android的垃圾收集對象
- 13. 在java中的垃圾收集示例?
- 14. 如何查看哪些對象在Java中被垃圾收集?
- 15. 垃圾收集如何在Java中使用Session對象?
- 16. Java垃圾收集和空
- 17. Java垃圾收集問題
- 18. 因垃圾對象引用而導致的java垃圾回收
- 19. 垃圾收集資格對象
- 20. 如何跟蹤垃圾收集對象
- 21. Scala對象何時收集垃圾?
- 22. 對象沒有垃圾收集
- 23. ActiveX對象和.NET垃圾收集器
- 24. 垃圾收集器如何確定對象是否是垃圾?
- 25. 垃圾收集器在收集死對象時會做什麼?
- 26. Java的花費在垃圾收集
- 27. JAVA中的垃圾收集器sp
- 28. Java Webstart中的日誌垃圾收集
- 29. 垃圾收集器和finalize()方法
- 30. 未被垃圾收集的Java「死」對象
一般來說,這不是你應該試圖做的事情,除非在極少數情況下,通常有更好的方法來解決問題。 –