Le rôle du thread [fil d'exécution] finaliseur est d'appliquer la méthode finalize() aux objets préalablement libérés par le ramasseur de miettes. Il est en effet des ressources, autres que celles impliquant la mémoire et que les objets ont créées, ouvertes et manipulées. Il peut s'agir de fichiers, de connexions réseau, etc., qu'il convient de clore convenablement. En d'autres termes, il s'agit de finaliser les actions entreprises. Le finaliseur est donc à l'opposé d'un constructeur. Si ce dernier est responsable de la création et de l'initialisation d'un objet, la méthode finalize() est chargée de la réalisation des opérations qui accompagnent la fin d'un objet (finalisation).