您好我是java编码的新手,我正在制作应用程序,但我遇到了这个问题:
GC_CONCURRENT freed 1151K, 19% free 5594K/6868K, paused 4ms+5ms, total 86ms
我做了一些搜索,发现我必须做垃圾收集,有人可以告诉我垃圾收集是如何工作的。 E.g什么时候对象有资格进行垃圾收集,请告诉我是否有办法强迫它。
我使用了Allocation Tracker,它说[]字节分配最多。请帮助我,如果我不解决,我不会看到自我编程的进展。
编辑:有人可以帮我解决GC_CONCURRENT错误,我不知道如何解决它。
答案 0 :(得分:0)
Java具有自动垃圾收集功能。您无需管理它,但可以节省应用程序的高性能。
有时你可以使用finalize()
- 方法帮助垃圾收集。
每次在Java中创建对象时,它都会进入称为堆的内存区域。调用Java堆
垃圾收集堆。无法强制进行垃圾收集。垃圾收集器运行在低位
记忆情境。当它运行时,它释放由无法访问的对象分配的内存。垃圾
collector在低优先级守护程序(即后台)线程上运行。你可以很好地问垃圾收集器
通过致电System.gc()
来收集垃圾,但你不能强迫它。
答案 1 :(得分:0)
垃圾收集不是一般的担心,但你应该知道它正在发生。 有一个线程(垃圾收集器)不断监视您的应用程序。当没有任何引用时,对象就符合条件。 不要担心强制垃圾收集,担心不要引用你不需要的对象。将引用设置为null。
如果您遇到内存错误,可能是因为您正在处理大量数据或存在某种无限回归问题。
答案 2 :(得分:-5)
System.gc();
将强制垃圾收集
http://docs.oracle.com/javase/6/docs/api/java/lang/System.html Javadoc说
static void gc()
Runs the garbage collector.