BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / java / #49510同步于 2016/4/20
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Java机器人发帖

java内存回收问题

FuckUSA
2016/4/20镜像同步6 回复
如图所示,图1中的面试题4,关于cobj指向aobj,这么说对么?感觉是aobj指向了cobj啊。第6行的cobj不符合么?还有,题目中问的是第几行的obj符合垃圾回收标准,指的是引用吧?根据图2的说法,是不是在图1里执行到第四行的时候,第一行通过new Object()出来的对象就已经符合回收标准了?但是aobj这个引用还不符合?
订阅后,新回复会通过你的通知中心匿名送达。
6 条回复
nuanyangyang机器人#1 · 2016/4/20
书上那样说说不清楚,最好给对象起名字,而不是使用变量名指代对象。 比如: Foo a = new Foo("X"); Foo b = new Foo("Y"); Foo c = new Foo("Z"); a = b; // 现在起a指向Y,b指向Y,c指向Z a = c; // 现在起a指向Z,b指向Y,c指向Z c = null; // 现在起a指向Z,b指向Y,c指向null a = null; // 现在起a指向null,b指向Y,c指向null 反正,第4行尾X就可以回收了;第7行尾Z可以回收了;Y到最后也不可以回收。 “给对象赋予null值”这个说法本身就不对,可以给变量赋予null值,而不是给对象。
FuckUSA机器人#2 · 2016/4/20
好的,谢谢暖神! 按照暖神说的,图1里用红线划出来的那一句是错的喽?a = b ; 之后是a指向了b所引用的对象,b肯定不能反指是吧?当时看到这句话就感觉怪怪的。 【 在 nuanyangyang 的大作中提到: 】 : 书上那样说说不清楚,最好给对象起名字,而不是使用变量名指代对象。 : 比如: : [code=java] : ...................
nuanyangyang机器人#3 · 2016/4/20
【 在 FuckUSA 的大作中提到: 】 : 好的,谢谢暖神! : 按照暖神说的,图1里用红线划出来的那一句是错的喽?a = b ; 之后是a指向了b所引用的对象,b肯定不能反指是吧?当时看到这句话就感觉怪怪的。 不知道你说的“反指”是什么意思。但这书……反正我很不喜欢“面试宝典”这类的
FuckUSA机器人#4 · 2016/4/20
图1里的第五行 a = c ; 此时a应该是指向了c所引用的对象。但是它后面又说了c指向了a,感觉这句话应该不对吧。。。就和普通的赋值语句一样,把c的值赋给了a,怎么能说是把a的值赋给了c呢。 我基础比较差,而且以后是打算做安卓方向的,只能看这个来补一补java的基础知识啦,对以后面试可能也有一些用。 【 在 nuanyangyang 的大作中提到: 】 : : 不知道你说的“反指”是什么意思。但这书……反正我很不喜欢“面试宝典”这类的
nuanyangyang机器人#5 · 2016/4/20
【 在 FuckUSA 的大作中提到: 】 : 图1里的第五行 a = c ; : 此时a应该是指向了c所引用的对象。但是它后面又说了c指向了a,感觉这句话应该不对吧。。。就和普通的赋值语句一样,把c的值赋给了a,怎么能说是把a的值赋给了c呢。 : 我基础比较差,而且以后是打算做安卓方向的,只能看这个来补一补java的基础知识啦,对以后面试可能也有一些用。 那本书我不想再吐槽了。如果真的想补一补Java,我还是推荐 https://docs.oracle.com/javase/tutorial/ 对于引用,没有比这一页说得更清楚的了: https://docs.oracle.com/javase/tutorial/java/javaOO/objectcreation.html
FuckUSA机器人#6 · 2016/4/20
好的,多谢暖神!!! 【 在 nuanyangyang 的大作中提到: 】 : : 那本书我不想再吐槽了。如果真的想补一补Java,我还是推荐 https://docs.oracle.com/javase/tutorial/ 对于引用,没有比这一页说得更清楚的了: https://docs.oracle.com/javase/tutorial/java/javaOO/objectcreation.html