请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

7-5 JAVA垃圾回收之常见面试题中,main方法中栈对象f已经指向null了

7-5 JAVA垃圾回收之常见面试题中,main方法中栈对象f已经指向null了,虽然finalize方法中让静态对象finalization指向了要回收的对象,这只是让静态变量有了指向,并且指向了this。但是本地线程栈中的指针f不是应该还是指向Null没变吗?f跟静态成员变量本身没有关联了啊,这里没想明白

正在回答

插入代码

2回答

同学好,不会的,这个是静态变量,如果非静态变量才会报空指针,可以试试。

0 回复 有任何疑惑可以回复我~
  • 提问者 那月真美 #1
    非常感谢!
    回复 有任何疑惑可以回复我~ 2025-02-09 20:38:29
翔仔 2025-01-26 20:15:41

同学好,辛苦描述一下后续的结果和困惑哈,和它没有关系后,后续是有什么问题呀。

0 回复 有任何疑惑可以回复我~
  • 提问者 那月真美 #1
    本地栈指针 f指向了null,在垃圾回收this 对象时,将堆里面的静态成员变量finalization指向了this对象实体;
    也就是说堆里面的这个类的实体对象又有了静态成员变量的引用。
    但是本地栈指针 f 理论上依然没有任何指向(指向了null)
    
    栈:f---->null
    堆:(没有任何指针引用) Finalization类实例(也就是this)
    垃圾回收时
    堆:静态成员变量 finalization---->  Finalization类实例(this)
    但栈:f--->null
    为啥第22行再使用本地指针 f  的时候不会报空指针?
    回复 有任何疑惑可以回复我~ 2025-01-26 20:38:23
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信