素朴な質問、

class A {
private static a = new A();
private A() { initialize }
protected void finalize() { terminate }
}

この場合、A がアンロードされる直前に、
馬鹿丁寧にも a が GC に処理されて、
terminate が実行される、なんて事はある?
VMの仕様としてはどうなんだろう?