C++ では、参照カウント オブジェクトを使用して、「自動」リサイクル オブジェクト プールの for を実装します。
SmartPointer<ObjType> object = pool.getObject(); // hold reference
// ... do stuff with object over time.
object = nullptr; // that is when reference
// count goes to 0
-- これで、refcount が 0 に達したときに呼び出される "onFinalRelease()" メソッドが C++ オブジェクトにあります。これをオーバーライドして (デフォルトは delete(this) です)、オブジェクトを破棄するのではなく、オブジェクトを自動リサイクルすることができます。
問題は、Java 参照型と参照プールを組み合わせてこのパターンを実装できるかどうかです。もちろん、これは意味のあるオブジェクトを作成するのにコストがかかる大規模な複雑なタイプのためのものです。それは私がやりたいことです:
SomeReference r = referenceQueue.getReference();
pool.recycle(r.takeBackUnusedObjectFromGC()); // ??????????????????????????
これは本当にいいでしょう:)