Please search CodeRanch about finalize() (not Finalize()). You will find that method is deprecated; you should no longer use it. This discussion was the most useful thing I found when I searched. It also gives you hints about when finalize() runs.
Be wary that even though the garbage collector only calls the finalize() method once after the object becomes phantom reachable, the finalize() method can "resurrect" the garbage collected object by strongly referring to it in a field.