オブジェクトが破棄されたとき finalize() が呼ばれますが、
先にプログラムが終了した場合には finalize() は呼ばれないんでしょうか?

// 実験プログラムを作っても呼ばれませんでしたので確認。