f为null为什么还能有f.finalization?

来源:7-5 Java垃圾回收之常见面试题

ZoeC5

2019-08-25

大概6:48秒左右, 不是应该抛空指针异常之类的吗?

写回答

2回答

翔仔

2019-08-26

同学好,f.finalization 是没问题的,因为静态变量的引用也会挂载到每个类的实例上

1
2
翔仔
回复
莨菽菽
同学好,因为静态成员是属于类的而非实例对象 , 所以无论用任何实例对象去调用静态成员时 , java编译期会自动替换为类去调用(替你纠正) , 所以无论实例对象(entity)是否为null , 都不影响类访问它的静态成员. 同学可以反编译一下源码就知道了 60: getstatic #5 // Field finalization:Lcom/interview/javabasic/jvm/gc/Finalization;
2020-05-06
共2条回复

ZoeC5

提问者

2019-08-26

finalization是static的, 看漏了...不过null实例也可以访问类静态成员第一次见,,

1
0

剑指Java面试-Offer直通车 百度资深面试官授课

招聘季即将到来,让百度资深面试官来为你的高薪Offer保驾护航

8427 学习 · 1870 问题

查看课程