일단 소스 부터 고고

#include <iostream>
using namespace std;

class Singleton {
private:
        Singleton() { cout << "uniqueInstance 생성됨" << endl; }
        static Singleton *uniqueInstance;
public:
        static Singleton* GetInstance() {
                if (uniqueInstance == NULL) {
                        uniqueInstance = new Singleton();
                }
                return uniqueInstance;
        }
        ~Singleton() { delete uniqueInstance; cout << "uniqueInstance 삭제됨" << endl;}
};

Singleton *Singleton::uniqueInstance = Singleton::GetInstance(); //<--- 이렇게 전역으로 선언을 해서(main() 밖에서) 참조를 하게 된다고 알고 있습니다만... 그렇다면 나중에 메모리 해제는 어떻게 해야 하는 것일까요. 위에 파괴자 부분에서 해제를 해 보았는데 호출이 안되더군요. 파괴자도 정적멤버함수로 거시기 해서 해제를 해 줘야 하나 하는 생각도 들었습니다만... 그건 아닌 것 같구요.
자바는 포인터에 대한 개념이 없어서 책에는 설명이 안나와 있더군요=_= 답변 부탁드리겠습니다(~-_-)~