终结者是不可预测的、通常是危险的、一般来说是不必须的。使用他们会导致不稳定的行为、糟糕的性能和移植性的问题。终结者有一些恰当的用法,我们将在之后讨论,就经验来说,终结者应当避免。

C++程序员被告诫不要将C++的析构函数当做终结者的同义词,在C++中,析构函数是回收对象相关资源的常见方法,构造函数的好伙伴。在Java中,垃圾回收器回收和对象关联的存储空间当这些对象不可到达时,不需要程序员额外的操作。C++的析构函数也用来 回收那些和内存无关的资源,这个工作在Java中,是在try-finally中完成的。

因为终结者不能及时的执行,而且不同的JVM实现也不相同,所以不推荐使用。