是否有任何垃圾收集对象的方法?据我所知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“死”对象
一般来说,这不是你应该试图做的事情,除非在极少数情况下,通常有更好的方法来解决问题。 –