id:nminoruさんのコメント(http://d.hatena.ne.jp/taedium/20041215のコメント)のおかげでFinalizeの仕組みが見えてきました。どうもありがとうございます。 nminoruさんの解説を参考にjava.lang.ref.Finalizerのコードを読むとなるほどという感じです。(前ちょっと読んだときはさっぱりわかりませんでした。)。ちょっと整理のためにnminoruさんがコメントで書いてくださった内容を自分の言葉でまとめてみます。 finalizeをオーバーライドしているクラスのインスタンスhogeが生成されるとJavaVMはFinalizerインスタンスを生成し、hogeのreferentとReferenceQueueが関連づけられる。このQueueをFinalizerThreadが監視する。(状態はunfinalized) hogeがfin