J'ai utilisé Fantôme de références dans un simpliste, très spécialisés, type de mémoire profiler pour surveiller la création et destruction d'objets. J'ai besoin d'eux pour garder une trace de la destruction. Mais l'approche est obsolète. (Il a été écrit en 2004 ciblage J2SE 1.4.) Professionnel des outils de profilage sont beaucoup plus puissant et plus fiable et la plus récente de Java 5 fonctionnalités comme JMX, des agents et des JVMTI peut être utilisé pour cela.
PhantomReferences
(toujours utilisé avec la Référence de la file d'attente) sont supérieurs aux finalize
qui a quelques problèmes et doit donc être évitée. Principalement fait d'objets accessible à nouveau. Cela pourrait être évité avec le finaliseur tuteur idiome (-> lire la suite dans "Effective Java"). Donc, ils sont aussi le nouveau finaliser.
De plus, un fantôme références
vous permettre de déterminer exactement quand un objet a été supprimé de la mémoire. Ils
sont, en fait, la seule façon de le déterminer. Ce n'est pas, généralement, que
utile, mais pourraient vous être utiles dans certaines circonstances très particulières
comme la manipulation d'images de grande taille: si vous êtes sûr qu'une image doit être
les ordures collectées, vous pouvez attendre jusqu'à ce qu'il est réellement, avant de tenter de
charge l'image suivante, et donc de la redoutable OutOfMemoryError moins
probable. (Cité par enicholas.)
Et comme le psd a écrit le premier, Roedy Vert a un bon résumé de références.