Où en mémoire les membres statiques sont-ils stockés en Java ?
Méthodes et variables statiques, telles que celles illustrées dans l'extrait de code Java fourni, sont stockés dans la section PermGen de la mémoire tas dans la JVM Hotspot d'Oracle et d'autres basées sur celle-ci. PermGen contient des métadonnées, y compris des données liées à la classe.
Mécanismes de stockage :
-
Variables statiques : Uniquement leurs valeurs techniques ( primitives ou références) sont stockées dans PermGen. Si une variable statique fait référence à un objet, l'objet lui-même réside dans des zones de tas standard, et non dans PermGen.
-
Méthodes statiques : Toutes les méthodes, y compris les méthodes statiques, occupent de l'espace dans PermGen dans le cadre de la réflexion données.
Important Notes :
- PermGen n'est utilisé que pour les métadonnées ; les champs statiques sont stockés dans le tas normal.
- Eclipse OpenJ9 et d'autres JVM peuvent ne pas avoir PermGen ou Metaspace.
- S'appuyer sur finalize() pour le garbage collection n'est pas fiable. Il appartient à la JVM de déterminer le calendrier de récupération de place et les objets éligibles.
- La définition d'une variable statique sur null seule peut ne pas garantir la suppression des objets du tas.
- La façon dont le code et les données sont stockés peut varier en fonction de l'implémentation et de la version de la JVM.
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!
Déclaration: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