Effective Java item 7 说,终结器会导致可移植性问题。
Finalizers are unpredictable, often dangerous, and generally unnecessary. Their use can cause erratic behavior, poor performance, and portability problems.
但我不明白 Java 是平台独立的,终结器怎么会导致可移植性问题?
最佳答案
终结器通常包含释放非 JVM(系统)资源的代码。如果将资源管理委托(delegate)给他们,他们会创建非常不寻常的资源生命周期模式(大量不必要的开放资源+一次释放数千个资源)。这听起来确实很危险,并且在每个尚未经过测试的平台上,它都构成了不可预测的崩溃威胁。
关于java - 终结器导致可移植性问题 - 怎么办?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31795857/