为什么不选择A

正在回答

登陆购买课程后可参与讨论,去登陆

3回答

同学你好,

1、由于图片有些模糊,老师将主方法中第二行代码看成是new Book(0);了。如果正确的是new Book(3);那么就应该选择A选项了。

2、有引用,那么这个对象可能还会被使用,如果回收该对象,程序运行过程中可能会报空指针错误。没有被引用的对象,由于对象不会被引用了,所以垃圾回收机制会将该对象回收。

如果我的回答解决了你的疑惑,请采纳!祝学习愉快~

提问者 眼睛眯起来 2020-06-24 18:27:45

为什么有引用就不会执行finalize这个方法啊?

好帮手慕阿慧 2020-06-24 18:14:33

同学你好,

System.gc();是告诉垃圾收集器打算进行垃圾收集。垃圾回收确认没有指向对象的引用时,会执行回收。

由于new Book(1);有book变量在引用,所以不会执行finalize()方法。而new Book(0);没有对象引用,就会执行finalize()方法。所以应该选D。

如果我的回答解决了你的疑惑,请采纳!祝学习愉快~

问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师