Gestion de la mémoire Java : comprendre les générations jeunes, anciennes et permanentes
Dans la terminologie de gestion de la mémoire Java, le tas est divisé en trois générations principales : jeune, vieux et permanent. Chaque génération sert un objectif spécifique et interagit avec les autres de manière dynamique.
Jeune génération
La jeune génération est une région du tas où de nouveaux objets sont initialement attribués. Il est ensuite divisé en deux sous-espaces : Eden et Survivor. La plupart des allocations ont lieu dans l'espace Eden. Lorsqu'un objet dans l'espace Eden survit à un ou plusieurs cycles de collecte des ordures, il est promu espace Survivant.
Ancienne Génération
L'ancienne génération est la zone de stockage principale pour les objets à longue durée de vie. Les objets qui survivent à plusieurs garbage collection dans les espaces Survivor sont promus à l'ancienne génération. L'ancienne génération est également chargée de stocker les objets volumineux qui ne peuvent pas rentrer dans la jeune génération.
Génération permanente (non tas)
Contrairement à son nom, la permanente la génération ne fait pas partie du tas dans la JVM d'Oracle. Il s'agit d'un espace distinct et dédié principalement réservé aux définitions de classe, aux métadonnées et aux données constantes partagées. Dans Java 6 et versions antérieures, les chaînes internes étaient également stockées dans la génération permanente, mais cela a changé dans Java 7.
Interactions et relations
Les trois générations interagissent comme suit :
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!