Maison > Java > javaDidacticiel > le corps du texte

La définition d'objets sur Null en Java améliore-t-elle réellement le garbage collection ?

DDD
Libérer: 2024-11-17 11:02:02
original
473 Les gens l'ont consulté

Does Setting Objects to Null in Java Actually Improve Garbage Collection?

L'attribution d'objets à null dans Java a-t-elle un impact sur le garbage collection ?

L'attribution d'une référence d'objet inutilisée à null en Java est depuis longtemps un sujet de discussion débat entre les développeurs. Certains pensent que cela améliore le garbage collection, tandis que d'autres soutiennent qu'il s'agit d'une superstition de programmation vaudou.

GC en Java moderne

Selon la documentation de Java Garbage Collector, le GC Java moderne est très efficace. Il nettoie automatiquement les objets inaccessibles peu de temps après qu'ils le deviennent, à la fois pour les variables locales et les instances de classe.

Quand définir explicitement sur Null

Définir explicitement une référence d'objet à null n'est nécessaire que si vous savez qu'il reste référencé ailleurs, par exemple dans un tableau conservé dans la portée. Dans de tels cas, l'annulation des éléments individuels du tableau peut être appropriée.

Exemple ArrayList

La classe Java ArrayList fournit un exemple d'annulation explicite d'un objet dans le supprimer méthode. Après avoir supprimé un élément du tableau, l'élément à l'ancien index est défini sur null pour indiquer sa disponibilité pour le garbage collection.

Équivalence fonctionnelle

Il est important de noter que définir explicitement un objet sur null ne déclenche pas le garbage collection immédiat. Tant qu'il ne reste aucune référence à l'objet, les deux extraits de code suivants sont fonctionnellement équivalents :

void foo() {
   Object o = new Object();
   // do stuff with o
}
Copier après la connexion
void foo() {
   Object o = new Object();
   // do stuff with o
   o = null;
}
Copier après la connexion

Conclusion

En général, attribuer explicitement des objets à null en Java a un impact minimal sur le garbage collection. Le Java GC moderne est efficace et collectera automatiquement les objets inaccessibles. La suppression explicite ne doit être utilisée que lorsqu'on sait que l'objet resterait autrement référencé.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal