如下代码:
10. public Object m() {
11. Object o = new Float(3.14F);
12. Object [] oa = new Object[1];
13. oa[0] = o;
14. o = null;
15. oa[0] = null;
16. print 'return 0';
17. }
问:当Float对象在第11行被创建后, 什么时候能够被垃圾回收?(C)
A. 13行以后
B. 14行以后
C. 15行以后
D. 16行以后
解析:由cpu的时间片控制分配,轮到你这个线程运行,你才能运行
public Object m() {
Object o = new Float(3.14F); // o----------> new Float(3.14f)
Object [] oa = new Object[1];
oa[0] = o; // o----------> new Float(3.14f) <--------------- oa[0]
o = null; // o----------> null , oa[0]---------------> new Float(3.14f)
oa[0] = null;// o----------> null , oa[0]---------------> null , new Float(3.14f) 到这一步,这个对象不再有任何引用了,也就是成了垃圾对象了
return 0;
}
什么时候会触发垃圾回收
当对象没人引用
导致新生代的内存占用越来越多,都快满了
这个时候,就会触发垃圾回收