如果我有类似以下的代码:
public Constructor(final Object o) {
taskSystem.add(new CycleTask(15, 15, -1) {
@Override
public void execute() throws Throwable {
//access o here every 15 cycles forever
}
});
}
如果有的话,什么时候会被垃圾收集?只有当任务被收集时,还是会因为它是最终的而永远保留在内存中?
o
might一旦不再可达,就收集垃圾,无论它是否是最终的。显然,只要execute
正在运行,如果需要访问o
,它会阻止GC。
When execute
已完成运行,并假设您尚未存储任何引用o
(例如在集合中),它将被标记为准备好进行垃圾回收。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)