Heim  >  Artikel  >  Backend-Entwicklung  >  Einführung in Heap und Stack in C#

Einführung in Heap und Stack in C#

巴扎黑
巴扎黑Original
2017-09-06 11:16:001684Durchsuche

1. Was ist ein Haufen?

 Heap ist ein Speicherbereich, in dem große Speicherblöcke zum Speichern bestimmter Arten von Datenobjekten zugewiesen werden können

Eigenschaften des Heaps:

1. Innerhalb des Heaps Der Speicher kann in beliebiger Reihenfolge gespeichert und entfernt werden.

2. Die vom Programm im Heap gespeicherten Daten können nicht explizit gelöscht werden.

3. Verlassen Sie sich auf den automatischen GC (Garbage Collector). Ermitteln und löschen Sie automatisch das nicht besessene Heap-Objekt und geben Sie es dann frei.

 4. Der Speicher des freigegebenen Objekts kann wiederverwendet werden.

2.

  Der Stapel ist ein Speicherarray und eine Last-in-First-out-Datenstruktur

Mehrere Datentypen:

1. Die Werte bestimmter Typen von Variablen;

 2. Die aktuelle Ausführungsumgebung des Programms

 3. An die Methode übergebene Parameter

1. Daten können nur vom Stapel abgerufen und gelöscht werden.

2. Das Ablegen von Daten oben auf dem Stapel wird zu einem Push ein Pop;

3. Was ist der Unterschied?

 1. Die gespeicherten Datentypen sind unterschiedlich;

 2. Der Stapel kann nur von oben eingefügt und gelöscht werden, und der Heap kann in beliebiger Reihenfolge gespeichert und entfernt werden
 3. Der Stapelspeicher muss nicht verwaltet werden und wird nicht von GC verwaltet. Wenn das oberste Element des Stapels aufgebraucht ist, wird es sofort freigegeben. Der Heap muss durch GC (Garbage Collection: Garbage Collector) bereinigt werden.

 4. Der Stapel wird automatisch vom System zugewiesen und ist schneller. Aber es gibt keine Kontrolle. Der Heap ist der durch neue zugewiesene Speicherblock. Er wird von unserer Anwendung gesteuert. Er ist im Allgemeinen langsam und anfällig für Speicherfragmentierung

Das obige ist der detaillierte Inhalt vonEinführung in Heap und Stack in C#. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn