采纳答案成功!
向帮助你的同学说点啥吧!感谢那些助人为乐的人
7-5 JAVA垃圾回收之常见面试题中,main方法中栈对象f已经指向null了,虽然finalize方法中让静态对象finalization指向了要回收的对象,这只是让静态变量有了指向,并且指向了this。但是本地线程栈中的指针f不是应该还是指向Null没变吗?f跟静态成员变量本身没有关联了啊,这里没想明白
同学好,不会的,这个是静态变量,如果非静态变量才会报空指针,可以试试。
非常感谢!
同学好,辛苦描述一下后续的结果和困惑哈,和它没有关系后,后续是有什么问题呀。
本地栈指针 f指向了null,在垃圾回收this 对象时,将堆里面的静态成员变量finalization指向了this对象实体; 也就是说堆里面的这个类的实体对象又有了静态成员变量的引用。 但是本地栈指针 f 理论上依然没有任何指向(指向了null) 栈:f---->null 堆:(没有任何指针引用) Finalization类实例(也就是this) 垃圾回收时 堆:静态成员变量 finalization----> Finalization类实例(this) 但栈:f--->null 为啥第22行再使用本地指针 f 的时候不会报空指针?
登录后可查看更多问答,登录/注册
招聘季即将到来,让百度资深面试官来为你的高薪Offer保驾护航
1.9k 27
2.8k 22
1.3k 15
1.5k 14
1.3k 14