Maison  >  Article  >  Java  >  Quelle est la différence entre la pile et le tas en Java

Quelle est la différence entre la pile et le tas en Java

王林
王林original
2019-11-13 11:35:423296parcourir

Quelle est la différence entre la pile et le tas en Java

Pile Java

La pile Java est toujours associée à un thread Chaque fois qu'un thread est créé, la JVM créera un Java correspondant. La pile contiendra plusieurs piles dans cette pile Java. Ces cadres de pile sont associés à chaque méthode. Chaque fois qu'une méthode est exécutée, un cadre de pile sera créé qui contiendra des "variables internes" (dans les variables de méthode définies à l'intérieur), " pile d'opérations" et "valeur de retour de méthode" et d'autres informations.

Java Heap

Le tas est l'endroit où les objets Java sont stockés. C'est la zone de stockage principale permettant à la JVM de gérer les objets Java. le plus préoccupé, car C'est la zone de stockage la plus étroitement liée à notre application et à notre mémoire.

Chaque objet Java stocké dans le tas sera une copie de la classe de l'objet. Il copiera toutes les propriétés non statiques, y compris celles héritées de sa classe parent.

Le tas est partagé par tous les threads Java, donc l'accès à celui-ci nécessite une attention particulière aux problèmes de synchronisation, et les méthodes et attributs correspondants doivent garantir la cohérence.

La mémoire peut être divisée en 3 zones : zone de méthode (également appelée méthode de zone statique), pile et tas

1 zone de méthode

Magasins. toutes les classes (c'est-à-dire que les fonctions des classes sont également stockées dans cette zone) et les variables statiques. La zone de méthode stocke les seuls éléments de l'ensemble du programme, tels que les classes et les variables statiques. Peut être partagé par tous les threads, tout comme le tas.

2. Mémoire de pile :

stocke les variables locales, et une fois la portée à laquelle appartient la variable terminée, la variable est automatiquement libérée.

3. La mémoire tas

stocke les entités, les tableaux et les objets (les tableaux sont des objets), et chaque entité a une première valeur d'adresse. Tout ce qui est nouveau est dans la mémoire tas et sera initialisé par défaut. Aucune libération manuelle ou collecte automatique des déchets n’est requise.

Tutoriel recommandé : Tutoriel Java

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
Article précédent:que fait JavaArticle suivant:que fait Java