Effective Java says :
There is a severe performance penalty for using finalizers.
Why is it slower to destroy an object using t
One reason I can think of is that explicit memory cleanup is unnecessary if your resources are all Java Objects, and not native code.