172 votes

Comment utiliser WeakReference dans les développements Java et Android?

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.

233voto

dbyrne Points 18604

À 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.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X