Maison >Java >javaDidacticiel >Comment les générations jeunes, anciennes et permanentes travaillent-elles ensemble dans la gestion de la mémoire Java ?

Comment les générations jeunes, anciennes et permanentes travaillent-elles ensemble dans la gestion de la mémoire Java ?

Linda Hamilton
Linda Hamiltonoriginal
2024-11-02 17:46:29702parcourir

How do the Young, Old, and Permanent Generations Work Together in Java Memory Management?

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 :

  • Lorsqu'un objet est alloué, il est placé dans l'espace Eden.
  • Si un objet Survit à une ou plusieurs collectes d'ordures dans Eden, il est promu espace Survivant.
  • Les objets qui survivent suffisamment longtemps dans les espaces Survivant sont promus à l'ancienne génération.
  • Objets de l'ancienne génération restent là jusqu'à ce qu'ils ne soient plus accessibles ou jusqu'à ce qu'un garbage collection complet ait lieu.
  • La génération permanente stocke les définitions de classe et les métadonnées de toutes les classes chargées tout au long de l'application. à vie.

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