Maison  >  Article  >  Java  >  Analyse de la relation entre la mémoire de pile, la mémoire de tas et la zone de méthode

Analyse de la relation entre la mémoire de pile, la mémoire de tas et la zone de méthode

王林
王林avant
2020-07-30 16:37:282550parcourir

Analyse de la relation entre la mémoire de pile, la mémoire de tas et la zone de méthode

Jetons d'abord un coup d'œil au code :

(Tutoriel recommandé : Tutoriel d'introduction à Java)

package cn.liang.jvm;
    public class SimpleHeap {	
            private int id;	
            public SimpleHeap(int id){		
                this.id = id;
	    }	
        public void show(){
	    System.out.println("My ID is " + id);
	}	
        public static void main(String[] args) {
		SimpleHeap s1 = new SimpleHeap(1);
		SimpleHeap s2 = new SimpleHeap(2);
		s1.show();
		s2.show();
	}
}

Diagramme de relation :

Analyse de la relation entre la mémoire de pile, la mémoire de tas et la zone de méthode

(Recommandation du didacticiel vidéo : Tutoriel vidéo Java)

  • L'instance SimpleHeap elle-même est allouée dans le tas mémoire

  • Les informations décrivant la classe SimpleHeap sont stockées dans la zone de méthode

  • Les variables locales s1 et s2 dans la fonction main() sont stocké dans la mémoire de la pile Java et pointez vers le tas Deux instances de mémoire

Zone du tas :

1 Tous les objets stockés sont des objets, et chaque objet contient des informations sur. une classe correspondante. (Le but de la classe est d'obtenir des instructions d'opération)

2. JVM n'a qu'une seule zone de tas (tas) partagée par tous les threads. Les types de base et les références d'objet ne sont pas stockés dans le tas, seul l'objet lui-même l'est. stockés.

Zone de pile :

1. Chaque thread contient une zone de pile. Seuls les objets des types de données de base et les références aux objets personnalisés (et non aux objets) sont stockés dans la pile. tas.Zone

2. Les données (types d'origine et références d'objet) dans chaque pile sont privées et ne sont pas accessibles par d'autres piles.

3. La pile est divisée en 3 parties : zone de variables de type de base, contexte d'environnement d'exécution et zone d'instructions d'opération (instructions d'opération de stockage).

Zone de méthode :

1 Également appelée zone statique, comme le tas, elle est partagée par tous les threads. La zone méthode contient toutes les variables de classe et statiques.

2. La zone méthode contient des éléments qui sont toujours uniques dans l'ensemble du programme, tels que des variables de classe et statiques.

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:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer