我同学最近在面试java的岗位, 这是他遇到的某些关于java的JVM中垃圾回收相关的部分的问题, 他来问我, 我特以此文章来解答.
公司 京东
base 北京
面试时间 2024年10月23日16:00:00
他跟我说, 面试官一上来就问了一个关于JVM的问题, 直接就给他难住了, 问题是 :
哪些情况下的对象会被垃圾回收机制处理掉?
- 我同学: 额 .. 这个我不太清楚, 应该是没有对象引用这个对象的时候, 就会被清理掉吧.
- 面试官: 确实如此, 但是我怎么知道 某个对象是否被其他对象引用?
- 我同学: 这个我知道(很自信), 使用的是可达性分析法, 如果一个对象存在与GCRoots的 某个节点的引用链中, 那么这个对象就不会被清理.
- 面试官: 那么有哪些可以作为GCRoot呢?
- 我同学: 吧唧吧唧(只答了几点, 没答全)
- 面试官: 那一个对象如果不存在关联的引用链, 那么是否会被清除?
- 我同学: 这个不太清楚....
其实, 你也知道, 这就是想问, 哪些对象会在下一次GC的时候, 被垃圾回收器回收掉. 本问题