나는 C++에 익숙하다. 클래스의 모든 인스턴스 (이는 사용자가 확장 할 수있는 라이브러리 클래스)의 목록을 얻으려면, 나는 일반적으로 객체에 대한 모든 참조와 정적 용기가 :자바 : 클래스의 모든 인스턴스에 대한 참조를 저장하는 방법은 무엇입니까?
#include <list>
class CPPClass;
class CPPClass {
public:
CPPClass() {
objList.push_back(this);
}
~CPPClass() {
objList.remove(this);
}
private:
static std::list<CPPClass *> objList;
};
std::list<CPPClass *> CPPClass::objList;
을 내가 어떻게해야하는 방법 Java에서 동일합니까? 나는 몇 가지 문제가 : 여러 개의 클래스 로더가있을 수 있다는 것을 나에게 언급
- 사람을, 그 문제
- 자바에는 소멸자가 없다가 발생할 수 있습니다, 그래서 어떻게 참조 목록에서 제거 할 것인가?
- 참조가 제거되지 않으면 이러한 개체가 언제 가비지 수집됩니까?
[가벼운 참조] (http://docs.oracle.com/javase/7/docs/api/java/lang/ref/WeakReference.html)를 개체에 저장하여 가비지 수집을 허용합니다. – GriffeyDog