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!