在 C++ 中,我使用引用计数对象来实现一个“自动”回收对象池
SmartPointer<ObjType> object = pool.getObject(); // hold reference
// ... do stuff with object over time.
object = nullptr; // that is when reference
// count goes to 0
-- 现在我在 C++ 对象上有一个“onFinalRelease()”方法,当 refcount 达到 0 时会调用该方法。我可以覆盖它(默认为 delete(this))以自动回收对象而不是销毁它们。
问题是我是否可以使用 java 引用类型和引用池的某种组合来实现这种模式。当然,这是针对一种在有意义的情况下创建对象成本高昂的大型复合体。那就是我想做的:
SomeReference r = referenceQueue.getReference();
pool.recycle(r.takeBackUnusedObjectFromGC()); // ??????????????????????????
这将是真正的好:)