永发信息网

一个很旧的面试题。关于垃圾收集器的

答案:4  悬赏:50  手机版
解决时间 2021-03-10 06:53
程序段3:
1.Object aobj = new Object ( ) ;
2.Object bobj = new Object ( ) ;
3.Object cobj = new Object ( ) ;
4.aobj = bobj;
5.aobj = cobj;
6.cobj = null;
7.aobj = null;
问:这段代码中,第几行的内存空间符合垃圾收集器的收集标准?
答:第7行。注意这类题型是认证考试中可能遇到的最难题型了。
行1-3分别创建了Object类的三个对象:aobj,bobj,cobj
行4:此时对象aobj的句柄指向bobj,所以该行的执行不能使aobj符合垃圾收集器的收集标准。
行5:此时对象aobj的句柄指向cobj,所以该行的执行不能使aobj符合垃圾收集器的收集标准。
行6:此时仍没有任何一个对象符合垃圾收集器的收集标准。
行7:对象cobj符合了垃圾收集器的收集标准,因为cobj的句柄指向单一的地址空间。在第6行的时候,cobj已经被赋值为null,但由cobj同时还指向了aobj(第5行),所以此时cobj并不符合垃圾收集器的收集标准。而在第7行,aobj所指向的地址空间也被赋予了空值null,这就说明了,由cobj所指向的地址空间已经被完全地赋予了空值。所以此时cobj最终符合了垃圾收集器的收集标准。 但对于aobj和bobj,仍然无法判断其是否符合收集标准。
总之,在Java语言中,判断一块内存空间是否符合垃圾收集器收集标准的标准只有两个:
1.给对象赋予了空值null,以下再没有调用过。
2.给对象赋予了新值,既重新分配了内存空间。
最后再次提醒一下,一块内存空间符合了垃圾收集器的收集标准,并不意味着这块内存空间就一定会被垃圾收集器收集。
问题:我的问题是第4行aobj = bobj不是aobj的引用已经是bobj的了吗,那么第一行 中的aobj = new Object();这里所产生的对象引用不就已经无法得到了吗,那么为什么不符合垃圾收集器标准
最佳答案
.自己写个程序测试一下就好了嘛

public class abcc {


static int i=0;
int j;
public abcc()
{
// TODO Auto-generated constructor stub
j=i;
i++;
}
protected void finalize()
{
System.out.println(j);
}

public static void main(String[] args) {
// TODO Auto-generated method stub
Object aobj = new abcc ( );

Object bobj = new abcc ( );
Object cobj = new abcc ( );
System.gc();
System.out.println("第一次垃圾处理");
aobj = bobj;
System.gc();
System.out.println("第二次垃圾处理");
aobj = cobj;
System.gc();
System.out.println("第三次垃圾处理");
cobj = null;
System.gc();
System.out.println("第四次垃圾处理");
aobj = null;
System.gc();
System.out.println("第五次垃圾处理");
}
}
第四行明显会启动垃圾处理器 符合垃圾处理器的启动标准 所以这个题明显是错的....
如果面试的时候有人用这个为难你 你就用代码叫他闭嘴
全部回答
一样的啊,不管是哪一行的,总之垃圾回收器释放的内存总是 第一行的aobj初始的时候抓住的那一段内存,是吗,其余的内存都会再次引用
个人认为第4行是符合回收标准的。。。 解答中说不能是aobj符合回收标准,这句话也确实也没错,但是aobj指向的已经不是原来的那块内存了。。。 而且这应该是符合第二个标准 2.给对象赋予了新值,既重新分配了内存空间。 的啊
顶楼上,我也觉得答案写得有问题,第4行的那个做完以后,aobj原先指向的内存空间没有任何东西指向了,应该被回收。4和7应该是符合的。 再看看别人怎么说的。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
海尔小神童怎么用?海尔小神童使用介绍
石台县文化局地址在什么地方,想过去办事
【葡萄牙21vs西班牙21】21.1493年教皇为协调
抄送是什么意思?
bootstrap-combobox为什么不能新增
考驾照科目三教练管学会吗?还需要交费不?
荣发润滑油这个地址在什么地方,我要处理点事
My mother always takes pride in that enco
格力电器海格特约服务站地址在哪,我要去那里
沁园世保康纳滤净水机储水桶满满的,但想烧水
请问,求一部旧动画《神秘世界》。,求一部旧《
为什么我字体库里有仿宋字体,但是在word里找
宏发平价超市在什么地方啊,我要过去处理事情
急!无缘无故总头疼头闷很厉害,并且额头很凉
团体心理咨询应遵循的原则有()。A.共同的原则
推荐资讯
如何保存网页
杜小乔为什么这么漂亮
晋江、红袖、起点、潇湘这几个网站里面哪些作
黄氏翡翠珠宝这个地址在什么地方,我要处理点
lol好久没玩玩什么最快恢复手法
【电子邮件工作原理】电子邮件的工作原理是什
抗日电视剧中日本少佐以下军官称呼?
1902-1932美国经济变化的原因
英雄联盟怎么艾特敌方所有人?求告诉
未尝中的尝不可以翻译为经历的意思么?急需,
寨坡沟怎么去啊,有知道地址的么
庆城缝纫设备商行地址在哪,我要去那里办事
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?