Maison > Java > javaDidacticiel > le corps du texte

Comment faire la différence entre le tas et la pile dans les applications Java

无忌哥哥
Libérer: 2018-07-19 09:42:59
original
2322 Les gens l'ont consulté

1. La mémoire des variables de référence des types de données et des objets de base en Java est allouée sur la pile, et les variables sont automatiquement libérées lorsqu'elles sortent de la portée ; la mémoire des variables de type référence est allouée sur le tas ou dans le pool de constantes (pool de constantes de chaîne, pool de constantes de type de base), c'est-à-dire que les objets créés sont stockés sur le tas.

2. La gestion de la mémoire de la pile est complétée en poussant et en faisant éclater la pile. L'unité de base de la pile est le cadre de pile. Lorsqu'une fonction est appelée, un nouveau cadre de pile est créé en poussant. la pile. Une fois l'appel terminé, le cadre de pile est libéré en faisant éclater la pile. Le tas est utilisé pour stocker les objets créés pendant l'exécution et les nouveaux objets sont placés sur le tas. JVM est une machine virtuelle basée sur un tas. Chaque programme Java s'exécute sur une instance JVM distincte correspond également à un tas unique. Si un programme Java a plusieurs threads, ils s'exécutent tous sur la même instance JVM. mémoire de tas. Par conséquent, lorsque plusieurs threads accèdent à la mémoire du tas, les données du tas doivent être synchronisées.

La mémoire tas en C++ est ouverte et libérée par les développeurs. En Java, la période de récupération de place termine automatiquement la publication. Les développeurs n'ont qu'à demander l'espace tas qu'ils souhaitent.

3. En Java, un espace est ouvert dans le tas pour stocker le nouvel objet, puis une variable est référencée dans la pile pour stocker la première adresse de l'objet dans le tas, accessible. Grâce à l'adresse stockée dans la variable de référence dans la pile. Object, la variable de référence dans la pile équivaut à un nom de l'objet dans le tas.

4. La vitesse d'accès de la pile est plus rapide que celle du tas. La taille et la durée de vie de la pile doivent être déterminées. Le tas peut allouer dynamiquement de la mémoire au moment de l'exécution. compilateur à l’avance, donc l’accès est lent.

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!

Étiquettes associées:
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