当前位置: 技术问答>java相关
一道关于garbage collection的SCJP题,请帮助!
来源: 互联网 发布时间:2015-05-06
本文导语: public class X{ 2) public Object m(){ 3) Object o=new Float(3.14F); 4) Object[] oa=new Object[1]; 5) oa[0]=o; 6) o=null; 7) oa[0]=null; System.out.println(oa[0]); 9) } 10) } which line is the earliest poi...
public class X{
2) public Object m(){
3) Object o=new Float(3.14F);
4) Object[] oa=new Object[1];
5) oa[0]=o;
6) o=null;
7) oa[0]=null;
System.out.println(oa[0]);
9) }
10) }
which line is the earliest point the object a refered is definitely elibile to be garbage collectioned?
A.After line 4 B. After line 5 C.After line 6
D.After line 7 E.After line 9(that is,as the method returns)
这样的题关键要知道那一点,怎么做呢?答案D,
我觉得应该选C呀?
请说明原因?
2) public Object m(){
3) Object o=new Float(3.14F);
4) Object[] oa=new Object[1];
5) oa[0]=o;
6) o=null;
7) oa[0]=null;
System.out.println(oa[0]);
9) }
10) }
which line is the earliest point the object a refered is definitely elibile to be garbage collectioned?
A.After line 4 B. After line 5 C.After line 6
D.After line 7 E.After line 9(that is,as the method returns)
这样的题关键要知道那一点,怎么做呢?答案D,
我觉得应该选C呀?
请说明原因?
|
GC是在所用对一个实例没有引用时才起作用
Float(3.14F)有两个引用,一个是o,一个是oa[0]
所以当两个引用都被付为null后就会引发GC
而且println函数会产生NullPointerException
Float(3.14F)有两个引用,一个是o,一个是oa[0]
所以当两个引用都被付为null后就会引发GC
而且println函数会产生NullPointerException
|
只有当对象为空时才会引发garbage,所以7是对的。
您可能感兴趣的文章:
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。