【发布时间】:2016-12-29 11:15:10
【问题描述】:
我听说在 Joshua Bloch 写的书中,如果我们重写 finalize 方法,分配和内存收集可能会增加到 430 次。
对我来说很明显,内存收集可能会更慢,因为 gc 需要额外的迭代来释放内存。
但是为什么分配阶段可以增加呢?
【问题讨论】:
-
我会先对该主题进行一些研究;并检查您是否找到关于此的 任何内容 ... 写于 2000 年左右之后。请记住,最着名的认为 Block 工作......就像过去 15 年一样。 从那时起,java平台发生了很多。
-
我不明白为什么分配会更贵。清理创建对象以将对象添加到终结队列。
-
分配可能需要更长时间,因为它更有可能必须等待由非平凡的
finalize()覆盖引起的 GC 周期。 -
@GhostCat 这是“Bloch”,而不是“Block”。
-
另外,Effective Java 是,“喜欢”,八岁,这并不重要,因为 建议是有效的!为什么你认为老是坏事,更不用说夸大年龄了?
标签: java garbage-collection java-memory-model finalize finalization