在面试中我被问到以下问题:
回答:False。
finalize() 方法不保证会被调用。例如,在JVM退出时,它们通常不会被调用。此外,由于可达性分析算法和其他优化,不清楚何时将对象标记为垃圾,因此 finalize() 方法可能永远不会被调用。
我选择了在对象被垃圾回收之前,调用对象的finalize()方法是发生的最后一件事情。
True
但是答案是错误的。您可以解释一下为什么吗?回答:False。
finalize() 方法不保证会被调用。例如,在JVM退出时,它们通常不会被调用。此外,由于可达性分析算法和其他优化,不清楚何时将对象标记为垃圾,因此 finalize() 方法可能永远不会被调用。