J'ai été développeur java 2 ans. Mais je n'ai jamais écrit de référence faible dans mon code. Comment utiliser WeakReference pour rendre mon application plus efficace, en particulier dans les applications Android.
Réponse
Trop de publicités?À l'aide d'un WeakReference
dans Android n'est pas différente de l'aide de l'une de plain old Java. Voici un excellent guide qui donne une explication détaillée: Comprendre les Références Faibles.
Vous devriez penser à utiliser un chaque fois que vous besoin d'une référence à un objet, mais vous ne voulez pas que la référence à protéger l'objet du garbage collector. Un exemple classique est un cache que vous voulez être des ordures collectées lors de l'utilisation de la mémoire devient trop élevée (souvent mis en œuvre avec WeakHashMap
).
Soyez sûr de vérifier d' SoftReference
et PhantomReference
.
EDIT: Tom a soulevé quelques inquiétudes sur la mise en œuvre d'un cache avec WeakHashMap
. Voici un article qui pose les problèmes: WeakHashMap n'est pas un cache!
Tom est juste qu'il y a eu des plaintes au sujet de la mauvaise Netbeans performance en raison d' WeakHashMap
de mise en cache.
Je pense toujours que ce serait une bonne expérience d'apprentissage pour mettre en œuvre un cache avec WeakHashMap
puis de le comparer à l'encontre de votre propre roulés à la main cache mis en œuvre avec SoftReference
. Dans le monde réel, vous n'auriez probablement pas utiliser l'une de ces solutions, car il est plus logique d'utiliser une 3ème partie de la bibliothèque comme Apache JCS.