Maison >développement back-end >Tutoriel C#.Net >Présentation du tas et de la pile en C#
1. Qu'est-ce qu'un tas ?
Le tas est une zone mémoire dans laquelle de gros blocs de mémoire peuvent être alloués pour stocker certains types d'objets de données ;
Caractéristiques du tas :
1. À l'intérieur du tas ; tas La mémoire peut être stockée et supprimée dans n'importe quel ordre ;
2. Les données enregistrées par le programme dans le tas ne peuvent pas être supprimées explicitement
3. S'appuyer sur le GC automatique (garbage collector) de CLR ; ) Déterminez et effacez automatiquement l'objet de tas sans propriétaire, puis libérez-le
4. La mémoire de l'objet libéré peut être réutilisée
2.
La pile est une matrice mémoire et une structure de données dernier entré, premier sorti
Plusieurs types de données :
1. Les valeurs de certains types de variables ;
2. L'environnement d'exécution actuel du programme ;
3. Paramètres transmis à la méthode
Plusieurs caractéristiques communes :
1. Les données ne peuvent être récupérées qu'à partir de l'insertion et de la suppression du haut de la pile ;
2. Mettre les données en haut de la pile devient un push
3. Supprimer les données du haut de la pile devient ; un pop
3. Stack et Quelle est la différence ?
1. Les types de données stockées sont différents
2. La pile ne peut être insérée et supprimée que par le haut, et le tas peut être stocké et supprimé dans n'importe quel ordre
;
3. La mémoire de la pile n'a pas besoin d'être gérée et n'est pas gérée par GC. Lorsque l’élément supérieur de la pile est épuisé, il est immédiatement libéré. Le tas doit être nettoyé par GC (Garbage collection : garbage collector) ;
4. La pile est automatiquement allouée par le système et est plus rapide. Mais il n'y a aucun contrôle. Le tas est constitué des blocs de mémoire alloués par new. Le compilateur ne se soucie pas de leur libération. Il est généralement lent et sujet à la fragmentation de la mémoire.
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!